当前位置: 首页 > news >正文

FFmpeg 实现视频批量剪辑

随着课程视频的增多,需要转化几个百视频,常规操作方式已经无法满足要求了,需要实现视频自动化剪辑。

前提条件

视频剪辑功能,均使用 FFmpeg 工具完成

https://ffmpeg.org/

FFmpeg 是一个用来做视频处理的开源工具,支持视频剪辑、视频转码、视频编辑、音频处理、添加文字、视频拼接、拉流推流直播等功能。通过不同的 FFmpeg 命令可以编程完成不同的视频剪辑功能,组合编排起来,即可应对各种批量自动化的场景。
常见的视频剪辑场景主要包含以下几种:
1. 视频转码
2. 视频裁剪
3. 视频加文字
4. 视频加图片
5. 视频拼接
6. 视频加音频
7. 视频转场
8. 视频特效
9. 视频加速慢速播放

FFmpeg 命令

下文介绍了一些具体的 FFmpeg 命令,您可以本地 安装 FFmpeg 后进行测试。

// 将 MOV 视频转成 mp4 视频
ffmpeg -i input.mov output.mp4
// 将原视频的帧率修改为 24
ffmpeg -i input.mp4 -r 24 -an output.mp4
// 将 mp4 视频转为可用于直播的视频流
ffmpeg -i input.mp4 -codec: copy -bsf:v h264_mp4toannexb -start_number 0 -hls_time 10 -hls_list_size 0 -f hls output.m3u8
// 给视频添加文字,例如字幕、标题等。
// `fontfile`是要使用的字体的路径,`text`是您要添加的文字,
// `fontcolor`是文字的颜色,`fontsize`是文字大小,`box`是给文字添加底框。
// `box=1`表示 enable,`0`表示 disable,`boxcolor`是底框的颜色,black@0.5 表示黑色透明度是 50%,`boxborderw`是底框距文字的宽度
// `x`和`y`是文字的位置,`x`和`y`不只支持数字,还支持各种表达式,具体可以去官网查看
ffmpeg -i input.mp4 -vf "drawtext=fontfile=/path/to/font.ttf:text='您的文字':fontcolor=white:fontsize=24:box=1:boxcolor=black@0.5:boxborderw=5:x=(w-text_w)/2:y=(h-text_h)/2" -codec:a copy output.mp4
// 给视频添加图片,例如添加 logo、头像、表情等。filter_complex 表示复合的滤镜,overlay 表示表示图片的 x 和 y,enable 表示图片出现的时间段,从 0-20 秒
ffmpeg -i input.mp4 -i avatar.JPG -filter_complex "[0:v][1:v] overlay=25:25:enable='between(t,0,20)'" -pix_fmt yuv420p -c:a copy output.mp4
// 视频拼接,list.txt 里面按顺序放所有要拼接的视频的文件路径,如下。
// 注意,如果视频的分辨率不一致会导致拼接失败。
ffmpeg -f concat -safe 0 -i list.txt -c copy -movflags +faststart output.mp4
// list.txt 的格式如下
file 'xx.mp4'
file 'yy.mp4'
// 视频加音频,stream_loop 表示是否循环音频内容,-1 表示无限循环,0 表示不循环。shortest 表示最短的 MP3 输入流结束时完成编码。
ffmpeg -y -i input.mp4 -stream_loop -1 -i audio.mp3 -map 0:v -map 1:a -c:v copy -shortest output.mp4

以上参考文档

https://cloud.tencent.com/document/product/583/71692

具体实操:

未完待续...

http://www.hskmm.com/?act=detail&tid=32213

相关文章:

  • 2023盘古石 物联网取证部分
  • 2025 年自润滑轴承厂家联系方式推荐,宁波索力特复合材料有限公司专业产品与可靠服务指南
  • MATLAB PSO-PF 融合滤波
  • SaltStack 集群安装指南
  • nginx基本配置详解
  • NCS 3.1.1 蓝牙如何设置 public 地址
  • C# Avalonia 16- Animation- BlurringButtons
  • iOS 26 崩溃日志导出全流程,多工具实践 辅助分析策略
  • 小白也能学会的 rime + 万象拼音 输入法安装教程
  • 别再争了,“Prompt已死”是个伪命题
  • 2025.10.16——1绿
  • 2025年通风气楼厂家最新权威推荐榜:工业厂房自然通风与消防排烟系统专业解决方案精选
  • 2025 年展柜定制厂家最新推荐排行榜:聚焦全链条服务与大规模生产能力的优质品牌精选
  • 了解漏洞管理和补丁管理
  • 于鸿硕项目案例作业03
  • restful接口返回忽略字段 jackon的@JsonIgnore注解应用
  • Windows系统-应用问题全面剖析Ⅱ:德承工控机DC-1300在Windows操作系统下[TPM功能]设置教程 - Johnny
  • 挂在天上放光明,好像一群IDA*
  • 元推理框架,是逻辑产物,也是逻辑功能,佛渡有缘人
  • 2025 年国内铝型材源头厂家最新推荐排行榜:聚焦优质企业核心优势,为下游企业精准采购提供专业参考
  • 基于遗传方法的动态多目标优化算法
  • 【linux内核】内核类型
  • 2025年脱模剂混合机厂家最新推荐排行榜,高效混合机,立式混合机,卧式混合机,化工混合机,脱模剂专用混合设备厂家精选
  • 神经网络_读书报告
  • Python.爬虫练习
  • vivo HDFS EC大规模落地实践
  • 防抖函数节流函数 - 东方不败-
  • 中电金信:从AI赋能到AI原生——企业级工具链平台重塑与建设实践
  • 基于TMS320F28377D双核芯片的开发例程
  • C# Avalonia 16- Animation- AnimateVisual