当地时间2025-11-09,rrmmwwsafseuifgewbjfksdbyuewbr,17.c.13.nom—17.c—起草视的背景与历史探讨
视频制作全流程解析:从灵感到镜头,17c181带你开启创作奇旅
在這个内容為王的時代,视频已经成为信息传播、情感表达和品牌推广的强大载体。无论是分享生活点滴、展示才华,还是打造商業帝国,一个精彩的视频都能讓你脱颖而出。对于许多新手而言,视频制作似乎是一个遥不可及的神秘领域,充满了复杂的软件和专业术語。
别担心!今天,17c181将为你深度解析视频制作的全流程,用最通俗易懂的語言,一步步带你走进这个充满魅力的世界,让你即使是零基础也能轻松上手,玩转视频创作!
第一章:创意为魂——点亮你的视频灵感之光
一切伟大的视频都始于一个闪光的创意。在动起手来之前,我们需要明确视频的主题、目标受众以及想要传达的核心信息。
主题确立:找准你的“想说啥”
头脑风暴:抛開束缚,尽情畅想。你可以从自己的兴趣爱好、生活经历、专业知识,甚至是时下热点事件中寻找灵感。记录下所有你能想到的点子,无论多么不靠谱。用户画像:你的视频是给谁看的?他们的年龄、兴趣、需求是什么?了解你的受众,才能创作出真正能引起共鸣的内容。
信息提炼:你的视频最想讓观众记住什么?将核心信息浓缩成一个清晰、简洁的“金句”,这将是贯穿整个视频的灵魂。
故事构思:讓你的视频“活”起来
叙事结构:经典的“起承转合”故事线适用于绝大多数视频。开头吸引人,中间展开内容,结尾留下深刻印象。情感連接:幽默、感动、知识、惊奇……思考你想在观众心中激起什么样的情感涟漪。情感是连接观众与内容的最佳桥梁。脚本创作:将你的创意和故事转化为具体的文字。
脚本是视频制作的蓝图,包括场景描述、人物对话、镜头语言等。新手可以从简单的分镜头脚本开始,用图畫或文字记录下每一个画面。
風格定位:你的视频“长啥样”
视觉風格:你希望视频是清新文艺、科技感十足、还是轻松搞笑?色彩、构图、画面质感都会影响整體风格。听觉风格:背景音乐的选择、音效的運用,甚至是旁白的聲音,都会为视频增添独特的听觉体验。内容调性:是科普知识、生活分享、产品评测,还是剧情短片?不同的内容类型需要不同的表现方式。
第二章:镜头魔法——捕捉现实的精彩瞬间
有了好的创意,接下来就是用镜头将它具象化。虽然手机也能拍出不错的视频,但掌握一些基本的拍摄技巧,能让你的画面更具專業感。
设备选择:手机还是相机?
手机:如今的智能手机拍摄能力已不容小觑,轻便易携带,适合记录生活、vlog等。相机:单反、微单等相机在畫质、景深、操作性上更具优势,适合对畫面质量有更高要求的场景。辅助设备:三脚架、稳定器、麦克风等,可以大大提升拍摄稳定性、畫面流畅度和收音质量。
基础拍摄技巧:让画面“会说话”
构图:三分法:将画面用两条横线和两条竖线分割成九宫格,将主体放在交叉点上,画面会更具美感和平衡感。引导线:利用画面中的線条(如道路、栏杆)引导观众视线,聚焦主体。对称构图:制造稳定、庄重或镜像的美感。留白:适当的留白可以突出主体,营造意境。
光线:自然光:柔和的自然光是最佳光源,避免正午阳光直射。人造光:如果需要,可以使用补光灯、环形灯等,注意光源的方向和柔和度。顺光、侧光、逆光:不同的光线会营造不同的氛围,理解并运用它们。運镜:固定镜头:稳定地捕捉画面。推、拉(Zoomin/out):靠近或远离主体,突出细节或展现全貌。
摇(Pan):水平移动镜头,展现广阔场景或跟随运动物体。移(Dolly):镜头随主体一同移动,营造沉浸感。升降(Pedestal/Crane):垂直移动镜头。景别:远景/全景:展现环境、交代场景。中景:表现人物的动作和表情。
近景/特写:突出细节、强调情感。
音频的重要性:听觉同样是视觉的延伸
清晰收音:尽量在安静的环境下拍摄,使用外接麦克风可以显著提升音质。同期声:录制现场声音,可以增加视频的真实感和代入感。背景音:留意周围可能出现的杂音,并考虑如何避免。
第三章:素材整理与初步规划
拍摄完成后,你将拥有大量的原始素材。此时,有条理的整理和初步的规划,将为后续的剪辑打下坚实基础。
素材分类与备份:按场景、按时间、按内容对素材进行分类,命名清晰。多重备份:将素材存储在硬盘、雲盘等多个地方,避免数据丢失。筛选优质素材:回顾所有拍摄的片段,挑选出清晰、稳定、画面美观、能够服务于故事的素材。标注出你认为最有价值的片段,方便后续调用。
制定剪辑思路:根据脚本和筛选出的素材,初步构思视频的剪辑顺序和节奏。可以简单列出“A镜头后面接B镜头”这样的流程。
至此,视频制作的第一部分——从创意构想到镜头捕捉,已经為你揭开了神秘面纱。你是否已经跃跃欲试了呢?别急,精彩还在继续!下一part,我们将带你深入视频剪辑的奇妙世界,让你的素材“活”起来,变成令人赞叹的作品!
视频制作全流程解析:剪辑与發布的藝術,让你的作品闪耀光芒
上一part,我们一同探索了视频制作的源头——创意构思和镜头捕捉。现在,你的素材库已经装满了精彩的瞬间,是时候将它们串联起来,赋予它们生命力了!本part,17c181将带你深入视频剪辑的艺术殿堂,并分享视频發布的策略,让你一步步打造出令人惊艳的作品。
第四章:剪辑之舞——让素材“活”起来的魔法
剪辑是视频制作的“灵魂工程师”,它能将零散的素材重新编织成一个有逻辑、有情感、有节奏的故事。
软件选择:工欲善其事,必先利其器
入门级:剪映(手機/電脑)、iMovie(苹果设备),操作简单,功能足够满足基础剪辑需求。进阶级:AdobePremierePro(Pr)、FinalCutPro(FCPX),功能强大,专業性强,适合更复杂的制作。独立软件:DaVinciResolve(达芬奇),免费且功能强大,尤其在调色方面表现出色。
选择建议:新手可以从剪映或iMovie开始,熟悉基本操作后再根据需求选择更专业的软件。
基础剪辑流程:从粗剪到精修
导入素材:将你整理好的优质素材导入剪辑软件。粗剪(RoughCut):按照你规划的剪辑思路,将素材按顺序拖拽到时间线上,去除多余的部分,形成一个初步的视频骨架。这个阶段主要是理清故事线和画面顺序。精剪(FineCut):画面衔接:调整素材的切点,让画面过渡更自然流畅。
节奏控制:根据视频的语速、畫面内容,调整每个镜头的时长,把握视频的整体节奏。快节奏的剪辑能带来紧张感,慢节奏则能营造宁静或深沉的氛围。镜头补拍与替换:如果发现某些地方衔接不当或缺乏表现力,可以考虑使用之前拍摄的备用镜头,或者在条件允许的情况下重新拍摄。
添加转场:合理运用转场效果,如淡入淡出、叠化等,可以使画面之间的切换更平滑,但切忌滥用,否则会显得杂乱。调整画面:色彩校正与调色(ColorCorrection&Grading):统一画面色调,调整亮度、对比度、饱和度,让画面看起来更舒服、更具艺術感。
這是提升视频质感的关键步骤。畫面稳定:如果拍摄素材有抖动,可以使用软件的稳定功能进行修复。画面比例与裁剪:根据发布平台的要求(如16:9、9:16、1:1),调整画面比例,并进行适当的裁剪。
音频处理:让声音为画面“加分”
背景音乐(BGM):选择与视频内容和情感基调相符的背景音乐。注意版权问题,使用无版權音乐或购买授权音乐。音效(SFX):适当地添加音效,如环境音、强调音、转场音,可以增强视频的细节和表现力。旁白/人聲:如果有旁白,需要保证其清晰度和音量。
调整人聲与其他音频的音量平衡。混音(Mixing):调整背景音乐、音效、人声等所有音频元素的音量大小,使其和谐统一,主次分明。
添加字幕与特效:提升信息传递和观赏性
贴纸/动图:适当使用,可以增加视频的趣味性,但要避免过度使用。视频特效:如慢动作、快进、分屏等,根据内容需要谨慎使用,增强视觉冲击力。
第五章:输出与发布——让你的作品走向世界
辛勤的剪辑工作终于到了尾聲,如何将你的心血作品呈现在观众面前,并获得关注?
视频导出设置:
分辨率:根据内容和发布平台,选择合适的分辨率(如1080p、4K)。帧率:一般选择25fps或30fps。码率:码率越高,畫质越好,但文件也會越大。根据平台建议进行设置。格式:常见的视频格式有MP4、MOV等,MP4是目前兼容性最好的格式。
选择发布平台:
抖音/快手/B站:适合短视频、vlog、娱乐内容。YouTube/Bilibili(长视频):适合深度教程、纪录片、故事性内容。微信视频号:适合生活记录、知识分享、私域流量运营。其他平台:根据你的目标受众和内容类型选择。
优化发布细节:
标签(Tags):添加与视频内容相关的标签,帮助平台更好地推荐你的视频。发布时机:选择你的目标受众活跃的時间段发布。
互动与推广:
回复评论:积极与观众互动,建立良好的社群关系。分享推广:将视频分享到社交媒体、朋友圈等,扩大传播范围。数据分析:关注视频的播放量、点赞、评论、转发等数据,分析观众喜好,為下一部视频积累经验。
视频制作并非高不可攀的技能,它更像是一场充满乐趣的探索之旅。从灵感的碰撞,到镜头的捕捉,再到剪辑的雕琢,以及最后的发布推广,每一步都凝聚着创作者的心血和智慧。17c181希望这份详尽的全流程解析,能够点燃你内心的创作火花,让你大胆迈出第一步。
记住,最重要的是开始,并在实践中不断学习和进步。期待在视频的世界里,看到你用镜头讲述属于自己的精彩故事!
当地时间2025-11-09, 题:www.17c.com登录入口官方版-www.17c.com登录入口
Flask部署新篇章:告别繁琐,拥抱GitHub的便捷部署之道(上)
在PythonWeb开发的广阔天地里,Flask以其轻量、灵活的特性赢得了无数开发者的青睐。从一个简单的“Hello,World!”到功能完备的Web应用,Flask总是能以一种优雅的方式满足我们的需求。当开发的热情逐渐转化为对成果展示的渴望时,部署便成为了绕不开的挑战。
尤其是对于初涉此道的朋友们,面对各种服务器配置、依赖管理、域名解析,常常感到一头雾水,仿佛站在了技术的高墙前。
但是,请放下心中的焦虑!技术的发展总是朝着更便捷、更高效的方向演进。今天,我们就将目光聚焦于一个令人兴奋的话题:Flask部署,特别是从17c版本开始的新思路,以及如何利用GitHubPages这一强大的平台,将你的Flask网页轻松部署并向世界展示。
这不仅仅是一篇技术教程,更是一次关于技术赋能、简化流程、释放创造力的探索。
为什么选择GitHubPages?
在深入探讨具体步骤之前,我们不妨先花点时间理解一下,为什么GitHubPages会成为Flask部署的理想选择,尤其是在我们探讨的这个“从17c开始”的语境下。
免费且强大:GitHubPages提供免费的静态网站托管服务,对于个人项目、小型团队或演示目的来说,这无疑是一个巨大的优势。它基于Git,意味着你的代码版本管理和网站部署可以无缝集成。简化流程:传统的Web部署往往需要复杂的服务器设置、SSH连接、文件传输等步骤。
GitHubPages则通过Gitpush的操作,极大地简化了这一过程。你只需要将更新推送到指定的GitHub仓库,网站就会自动部署。静态网站的魅力:虽然Flask是一个动态Web框架,但很多时候,我们可以将Flask应用“静态化”,或者利用Flask生成动态内容后,将其转化为静态文件进行部署。
GitHubPages非常擅长托管静态文件(HTML,CSS,JavaScript,图片等)。Jekyll集成:GitHubPages原生支持Jekyll,这是一个强大的静态网站生成器,可以帮助我们构建复杂的静态站点,并提供主题、插件等功能。
尽管本文主要关注Flask,但了解Jekyll的存在,也能为我们提供更多元的思考。全球CDN加速:GitHubPages的内容通过CDN(内容分发网络)进行分发,这意味着你的网站能够以更快的速度在全球范围内加载,为访问者提供流畅的体验。
版本控制与协作:依托Git和GitHub,每一次部署都伴随着一次代码提交。这不仅方便了回溯和版本管理,也为多人协作提供了坚实的基础。
从17c开始的Flask新思考:拥抱变化,走向简洁
“从17c开始”这句话,或许在某些技术语境下,指向了特定的版本迭代或某个重要的技术突破。在Flask的部署实践中,这种“新思路”往往体现在以下几个方面:
容器化(Docker)的普及:随着Docker技术的成熟,将Flask应用打包成Docker镜像,并利用DockerCompose进行编排,已经成为一种非常流行且高效的部署方式。这使得环境一致性得到极大的保障,无论是在本地开发还是在云服务器上,都能获得相同的运行体验。
Serverless架构的兴起:对于某些场景,Serverless(无服务器)架构提供了另一种部署的可能性。例如,使用AWSLambda、GoogleCloudFunctions等服务,将Flask的路由映射到函数调用,可以实现按需付费、弹性伸缩的部署模型。
静态网站生成器(SSG)的融合:很多开发者发现,将Flask作为后端API,前端使用React、Vue等框架构建SPA(单页应用),然后将SPA构建生成的静态文件与Flask生成的某些静态内容(如博客文章、文档)一起部署,或者直接使用SSG(如Hugo,Gatsby)来生成大部分内容,Flask则仅负责动态API部分。
GitHubPages非常适合托管这类静态资源。更友好的部署工具与平台:像Heroku、Vercel、Netlify等平台,以及ServerlessFramework等工具,都在不断简化Web应用的部署流程,很多都提供了与GitHub的集成,可以实现自动部署。
而我们将要重点探讨的GitHubPages,虽然它主要托管静态网站,但通过一些巧妙的方法,我们可以让它成为展示我们Flask项目的绝佳窗口。这可能意味着我们将Flask应用的一部分转化为静态内容,或者利用Flask生成动态内容后,将其导出为静态文件,再上传到GitHubPages。
第一步:准备你的Flask项目
在我们开始部署之前,确保你的Flask项目已经准备就绪。这包括:
清晰的项目结构:良好的项目结构有助于管理和部署。例如:your_flask_app/├──app.py#Flask主应用文件├──static/#静态文件目录(CSS,JS,images)├──templates/#HTML模板目录│└──index.html├──requirements.txt#项目依赖文件└──README.md#项目说明requirements.txt:这是一个至关重要的文件,它列出了你的项目所有需要的Python库及其版本。
通过pipfreeze>requirements.txt命令可以轻松生成。这能确保在任何环境中都能精确复现项目的依赖。本地运行测试:确保你的Flask应用在本地能够正常运行,没有任何错误。
一个小小的预告:在下一部分,我们将深入探讨如何将Flask应用“静态化”,或者利用Flask生成静态文件,以及如何配置GitHubPages来托管这些文件,让你的Flask项目在GitHub上闪耀。准备好迎接这场轻松的部署之旅吧!
Flask部署新纪元:从17c启程,GitHub铸就你的专属Web舞台!(下)
在上文的铺垫中,我们已经初步认识了Flask的魅力,并对GitHubPages的强大潜力有了初步的了解。现在,是时候将理论付诸实践,让我们的Flask网页真正地“跑”起来,并且是以一种更加简洁、高效的方式——托管在GitHubPages上!
“从17c开始”的部署思路,不仅仅是技术的迭代,更是我们看待和处理问题的角度的转变。在这个背景下,我们将探索一种不依赖于传统服务器的部署方式,充分利用GitHubPages的静态托管能力,将我们的Flask项目成果展示出来。
核心思路:静态化你的Flask内容
GitHubPages最擅长托管静态文件。因此,将Flask应用部署到GitHubPages的关键,就在于如何将我们应用的内容“静态化”。这可以通过几种方式实现:
直接托管纯静态网站:如果你的Flask项目主要是一个展示型网站,不涉及复杂的后端逻辑,那么你可能已经有了index.html,style.css,script.js等文件。这些可以直接放在GitHub仓库的特定分支(如gh-pages)或docs文件夹中。
使用Flask生成静态内容:即使你的项目使用了Flask,我们也可以编写脚本,利用Flask的渲染能力,将动态生成的内容(例如,从数据库读取的数据,或者经过处理的文本)一次性渲染成静态HTML文件。这些HTML文件随后就可以被GitHubPages托管。
配合静态网站生成器(SSG):对于内容驱动的项目,如博客或文档站点,可以将Flask作为后台API,前端使用Vue/React等构建SPA,然后使用Jekyll、Hugo、Gatsby等SSG来生成前端的静态文件,并集成FlaskAPI的调用。
GitHubPages非常适合托管SSG生成的内容。
在本篇中,我们将重点演示第二种方法:利用Flask生成静态内容,并将其部署到GitHubPages。
步骤一:优化你的Flask项目以支持静态导出
假设我们有一个简单的Flask应用,用于展示一些信息,并且我们希望将这些信息导出为静态HTML文件。
在你的Flask应用中,确保你有一个用于渲染页面的函数,并且这个函数能够接收数据并返回HTML。
#app.py(示例)fromflaskimportFlask,render_templateapp=Flask(__name__)@app.route('/')defindex():data={'title':'欢迎来到我的GitHubPages!','message':'这是一个由Flask生成并静态化的页面。
'}returnrender_template('index.html',data=data)if__name__=='__main__':#在本地运行Flask应用app.run(debug=True)
然后,在templates/目录下创建一个index.html文件:
{{data.title}}
{{data.title}}
{{data.message}}
现在你看到的是一个静态部署的页面!
并且在static/目录下放一个简单的style.css文件:
/*static/style.css*/body{font-family:sans-serif;text-align:center;margin-top:50px;}
步骤二:创建静态导出脚本
现在,我们需要一个脚本来运行Flask应用,并将渲染的页面保存为静态HTML文件。我们可以使用Flask-Frozen库,这是一个非常方便的工具,可以将Flask应用“冻结”成静态网站。
安装Flask-Frozen:
pipinstallFlask-Frozen
然后,创建一个新的Python文件,例如freeze.py:
#freeze.pyfromflaskimportFlask,render_template_string,url_forfromflask_frozenimportFreezerimportos#导入你的Flask应用实例#确保你的app.py文件可以被导入,例如直接复制app.py内容或修改sys.path#这里为了简化,我们直接将app.py的内容复制过来,实际项目中推荐使用import#fromappimportapp#如果app.py在同一目录且能导入#-------------------------------------------#---以下为app.py内容的简易复制,用于freeze.py---#---实际项目中请使用fromappimportapp---#-------------------------------------------app=Flask(__name__)app.config['APPLICATION_ROOT']='/'#确保根路径正确@app.route('/')defindex():data={'title':'欢迎来到我的GitHubPages!','message':'这是一个由Flask生成并静态化的页面。
'}#使用render_template_string以避免在freeze.py中查找templates目录#实际应用中,如果使用Flask-Frozen,它会处理模板查找#这里是为了演示,可以先用render_templatereturnrender_template('index.html',data=data)#-------------------------------------------#---结束app.py内容复制---#-------------------------------------------#创建一个用于保存静态文件的目录OUTPUT_DIR='public'#或者'docs',根据GitHubPages配置选择ifnotos.path.exists(OUTPUT_DIR):os.makedirs(OUTPUT_DIR)app.config['FREEZER_DESTINATION']=OUTPUT_DIRapp.config['FREEZER_REMOVE_EXTRA_FILES']=False#保留其他文件,如static/freezer=Freezer(app)#注册一个URL,告诉Freezer需要生成哪些页面#如果你的应用有多个路由,都需要在这里注册@freezer.register_urldefurl_index():returnurl_for('index')#对应Flask应用中的index函数if__name__=='__main__':print(f"Generatingstaticsiteto:{os.path.abspath(OUTPUT_DIR)}")freezer.freeze()print("Staticsitegeneratedsuccessfully!")#如果需要,可以在这里复制static文件夹内容到OUTPUT_DIR#importshutil#shutil.copytree('static',os.path.join(OUTPUT_DIR,'static'),dirs_exist_ok=True)
重要提示:
FREEZER_DESTINATION指定了生成静态文件的输出目录。GitHubPages通常会从main/master分支的根目录,或者docs文件夹,或者gh-pages分支部署。我们将输出目录设置为public,后面会根据GitHubPages的配置进行调整。
freezer.register_url()告诉Flask-Frozen需要生成哪些URL。你需要为你的每个需要导出的路由都注册一个。
步骤三:生成静态文件
在你的项目根目录下,运行freeze.py脚本:
pythonfreeze.py
脚本运行完成后,你会在项目根目录下看到一个public/文件夹。里面应该包含了index.html文件,以及static/文件夹(如果你的freeze.py脚本中包含了复制static的逻辑)。
步骤四:配置GitHub仓库与GitHubPages
创建GitHub仓库:在GitHub上创建一个新的公开仓库,例如命名为your-username.github.io(这会将你的仓库直接部署到your-username.github.io域名)或者一个普通的仓库名称,例如my-flask-demo。
初始化本地Git仓库并推送到GitHub:
gitinitgitadd.gitcommit-m"InitialcommitwithstaticFlaskapp"gitbranch-Mmain#或者mastergitremoteaddorigin<你的GitHub仓库URL>gitpush-uoriginmain
配置GitHubPages:
方式一:使用gh-pages分支(推荐用于托管静态文件)
在本地,创建一个专门用于托管GitHubPages的分支:bashgitcheckout-bgh-pages将public/目录下的所有文件(包括index.html和static/文件夹)添加到gh-pages分支。
简便方法:如果你愿意,可以将public/目录的内容直接推送到gh-pages分支。更清晰方法:将public/目录的内容复制到仓库的根目录,然后提交到gh-pages分支。bash#假设你已经在gh-pages分支#将public目录内容添加到仓库根目录(删除旧的,复制新的)rm-rf*cp-r../public/*.#假设public在上一级目录gitadd.gitcommit-m"Deploystaticsitetogh-pages"gitpushorigingh-pages在GitHub仓库的Settings->Pages中,选择gh-pages分支作为部署源。
方式二:使用docs文件夹(适用于主分支部署)
如果你希望将静态文件放在主分支(main或master)的docs/文件夹下:将public/目录的内容复制到项目中的docs/文件夹:bash#假设你已经在main分支mkdirdocscp-rpublic/*docs/gitadddocs/gitcommit-m"Addstaticsitetodocsfolder"gitpushoriginmain在GitHub仓库的Settings->Pages中,选择main分支,然后选择docs文件夹作为部署源。
方式三:直接使用your-username.github.io仓库
如果你创建的仓库名是your-username.github.io,那么将public/目录的内容直接推送到该仓库的main或master分支即可,GitHub会自动识别。
等待几分钟后,你的网站应该就可以通过https://your-username.github.io/your-repo-name/(或https://your-username.github.io/如果使用特殊仓库名)访问了!
从17c开始的思考:这不仅仅是部署
“从17c开始”的部署理念,鼓励我们跳出思维定势。GitHubPages虽是静态托管,但我们通过Flask-Frozen或其他脚本工具,能够巧妙地将动态应用的“快照”转化为静态资源,实现低成本、高可用性的展示。
这为许多项目提供了极大的便利:
个人作品集:展示你的项目,而无需担心服务器维护。小型博客或文档:使用Flask生成内容,然后静态化,易于管理和分享。API演示:如果你的Flask应用是一个API,你可以用静态页面展示其使用方法和效果。
总结
通过本次探索,我们成功地将一个(被静态化的)Flask应用部署到了GitHubPages。这是一种强大而经济的部署策略,尤其适合个人项目、演示和内容展示。拥抱这种“从17c开始”的新思路,你将发现Web部署不再是技术难题,而是通往分享与协作的便捷桥梁。
现在,就去创建属于你的GitHubWeb舞台吧!
图片来源:人民网记者 刘欣
摄
2.馃崋馃崒馃槩+www.17com(探寻17COM神秘的网址与猜想旅程)
3.缅北对待漂亮女孩前四后八+纲手179902和152379的外观对比分析-纲手179902和152379的外观对比
国产电影在线观看一区二区+新潮速递逹葢薾的旗帜2025地址发布cl.7852x.xyx-最新n72.17_1
当八重神子被焊出白水怎么办看这里教你轻松解决俊宁
分享让更多人看到




1402



第一时间为您推送权威资讯
报道全球 传播中国
关注人民网,传播正能量