FFmpeg进行简单的视频编辑与代码写法实例
使用 FFmpeg 进行简单的视频编辑非常强大。它是一个命令行工具,虽然一开始可能看起来有点复杂,但掌握了基本命令后会非常有用。
以下是一些常见的简单视频编辑操作及其 FFmpeg 命令:
1. 剪切视频
如果你想从一个视频中剪切出一段,你需要指定开始时间 (-ss
) 和持续时间 (-t
),或者开始时间 (-ss
) 和结束时间 (-to
)。
-
指定持续时间:
ffmpeg -i input.mp4 -ss 00:01:00 -t 00:00:30 -codec copy output.mp4
-i input.mp4
:指定输入文件。-ss 00:01:00
:从视频的第 1 分钟开始剪切(时:分:秒)。-t 00:00:30
:剪切 30 秒的持续时间。-codec copy
:这非常重要!它会直接复制视频和音频流,而无需重新编码,这样速度快,并且不会损失质量。
-
指定结束时间:
ffmpeg -i input.mp4 -ss 00:01:00 -to 00:01:30 -codec copy output.mp4
-to 00:01:30
:剪切到视频的第 1 分 30 秒。
2. 改变视频分辨率(缩放)
如果你想改变视频的尺寸,可以使用 -vf scale
过滤器。
ffmpeg -i input.mp4 -vf scale=1280:-1 output_720p.mp4
-vf scale=1280:-1
:将视频宽度设置为 1280 像素,-1
会自动计算高度以保持宽高比。你也可以指定具体的高度,例如scale=1280:720
。- 注意: 改变分辨率需要重新编码,这会比复制流慢。
3. 提取音频
从视频中提取音轨。
ffmpeg -i input.mp4 -vn output.mp3
-vn
:表示不包含视频流(video no)。output.mp3
:指定输出的音频文件格式。你也可以使用.aac
或其他音频格式。
4. 提取视频(无音频)
从视频中移除音轨,只保留视频。
ffmpeg -i input.mp4 -an -codec copy output_no_audio.mp4
-an
:表示不包含音频流(audio no)。-codec copy
:同样,为了避免重新编码,使用这个参数可以快速提取。
5. 合并视频(串联)
如果你有多个视频片段,想把它们按顺序连接起来,可以使用 FFmpeg 的 concat
解复用器或过滤器。
推荐方法:使用 Concat Demuxer (列表文件)
这种方法更快,因为不需要重新编码。
-
创建一个文本文件 (例如
mylist.txt
),列出你要合并的视频文件,每个文件一行,格式如下:file 'input1.mp4' file 'input2.mp4' file 'input3.mp4'
-
运行 FFmpeg 命令:
ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4
-f concat
:使用 concat 解复用器。-safe 0
:在某些情况下可能需要,允许读取绝对路径或危险路径。-i mylist.txt
:指定包含文件列表的文本文件。-c copy
:复制流,不重新编码。
替代方法:使用 Concat 过滤器 (如果文件格式或编码不同,或需要更复杂的处理)
如果你的视频文件格式或编码不同,或者你需要对视频进行其他处理(例如调整大小),则需要使用 concat
过滤器,这会重新编码。
ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.mp4
-i input1.mp4 -i input2.mp4
:输入多个文件。-filter_complex
:使用复杂过滤器图。[0:v][0:a][1:v][1:a]
:指定输入流 (第一个文件是 0,视频是 v,音频是 a)。concat=n=2:v=1:a=1
:n=2
表示有两个输入文件,v=1
表示输出一个视频流,a=1
表示输出一个音频流。-map "[v]" -map "[a]"
:映射输出的视频和音频流。
6. 添加水印/叠加图像
在视频上叠加一个图片(例如水印)。
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output_watermarked.mp4
-i watermark.png
:第二个输入是你的水印图片。-filter_complex "overlay=10:10"
:使用overlay
过滤器。10:10
是水印左上角的 x 和 y 坐标,表示距离视频左上角 10 像素。
7. 改变视频速度
如果你想让视频播放得更快或更慢,可以使用 setpts
和 atempo
过滤器。
改变视频播放速度 (不改变音高)
ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output_faster.mp4
setpts=0.5*PTS
:将视频播放速度加快一倍(0.5 倍持续时间)。对于减慢速度,可以使用大于 1 的值,例如2.0*PTS
会让视频慢两倍。atempo=2.0
:将音频播放速度加快一倍。atempo
的值必须在 0.5 到 2.0 之间。如果你需要更快的速度,可以链式使用多个atempo
过滤器(例如atempo=2.0,atempo=2.0
)。
8. 旋转视频
将视频顺时针旋转 90 度。
ffmpeg -i input.mp4 -vf "transpose=1" output_rotated.mp4
transpose
过滤器参数:0
= 逆时针旋转 90 度并垂直翻转 (默认)1
= 顺时针旋转 90 度2
= 逆时针旋转 90 度3
= 顺时针旋转 90 度并垂直翻转
开始使用前
- 安装 FFmpeg: 如果你还没有安装,可以访问 FFmpeg 官方网站下载适合你操作系统的版本并进行安装。
- 打开命令行/终端: 所有这些命令都在命令行界面中执行。
热门原创推荐
- 无版权,全免费,请收藏这10个免费高清无权素材网站
- 常用照片尺寸对照表,照片大小看这个表就OK了
- 如何使用FTP上传文件(FTP文件传输)
- 在线视频加密播放(加密视频观看)操作教程完整版
- 企业公众号菜单添加视频的完整教程(组图)
视频加密与在线教育文章
- 专业教育机构付费课程视频如何做加密防下载防盗录
- 在线教学课程视频AI智能大纲代码与演示
- 说说付费课程视频加密技术以及防翻录方法有哪些?
- Html5Player加密视频播放器添加ID跑马灯的效果
- 问答播放器(视频弹题)使用例子(代码)
- 视频自动生成字幕原理和自动生成字幕的应用实例
AI工具类文章
- AI应用:mijdourney 如何写prompt
- Midjourney最基础的一些使用设置
- Gemini 前世今生全面的信息介绍
- AI视频成工具D-ID介绍(AI数字人常用工具)
- Midjourney Prompt的使用基本结构介绍
视频加密/防下载/防录屏
- 防止付费课程视频被盗被下载的五大招数
- 企业内训视频加密防盗录全攻略
- 视频加密的两种常见的方式数字版权管理和加密算法与应用
FFmpeg视频编码
- 如何设置FFmpeg进行高分辨率视频转码?
- 视频处理时的截图工具ffmpeg截图用法实例
- FFmpeg视频编码的完整操作指南
- FFmpeg最常用命令参数详解及应用实例(很全值得收藏)
谷歌浏览器
- Chrome提示由贵单位管理该怎么取消?
- 关闭谷歌更新提示“若要接收后续 google chrome 更新,您需使用 windows 10或更高版本”
- chrome谷歌浏览器书签不同步的解决办法
- Chrome浏览器无痕浏览真的无痕吗?
- 关闭谷歌浏览器输入框记忆功能的方法
ThinkPad电脑
- ThinkPad系列产品进入BIOS并设置U盘启动的详细步骤
- 通用的ThinkPad BIOS 设置指南(精简版)
视频直播
- 企业如何做虚拟直播(绿幕抠像直播)
- 视频直播推流攻略(整理的各大平台推流界面)
- OBS直播工具使用指南/OBS推送直播视频源到服务器的工具