音视频图像处理神器FFmpeg有用的命令示例

ffmpeg由fabrice bellard创建,他与qemu和quickjs ( jslinux背后的引擎)的创建者相同。
本文介绍了许多不同的 ffmpeg 用例,假设读者具有该软件的基本知识。您将在本文中看到各种实际示例。更多详细信息,请参考官方文档页面。
尽管它们以多行形式呈现,但以下所有示例都是一行。只需将它们复制并粘贴到您的终端中,然后按 enter。
1. 编解码器选项
ffmpeg 支持的可用编解码器非常多。以下示例是一些最流行的组合,已在许多不同的商业项目中使用。
1.1 转换为 mp4
 linuxmi@linuxmi /home/linuxmi/linuxmi.com ffmpeg -i linuxmi.mov -c:v libx264 -c:a aac linuxmi.con.mp4
libx264是最流行的 h.264 编码器之一。libx264+aac组合支持 ie11。使用-crf选项来控制输出质量。
1.2 转换为 webm
linuxmi@linuxmi /home/linuxmi/linuxmi.com ffmpeg -i linuxmi.mov -c:v libvpx-vp9 -crf 31 -b:v 1m -c:a libvorbis linuxmi.webm
-crf代表恒定速率因子。libvpx没有默认的 crf 值。-crf 31用于 1080p 通常被认为足够好了,而它可以接受 0(无损)和 63(最差质量)之间的任何数字。供您参考,libx264的默认值为 28,范围从 0 到 51。
-b:v是比特率的一个选项。值1m与1000k 相同。 1.3 转换为 ogg
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com ffmpeg -i linuxmi.mov -c:v libtheora -q:v 5 -c:a libvorbis -q:a 5 linuxmi.ogg
-q:v(视频)和-q:a(音频)是可变比特率 (vbr) 质量级别的选项。取值范围是 1-31,其中 1 是最高质量,31 是最低质量。或者,它们分别与-qscale:v和-qscale:a相同。 1.4 转换为 gif
ffmpeg -i linuxmi.mov -vf scale=960:-1, fps=16, split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse -loop 0 linuxmi.gif
 1.5 保持原始编码  
ffmpeg -i linuxmi.mov -c copy linuxmi.com.mov  这会创建源文件的副本。 1.6 移除音轨
ffmpeg -i linuxmi.mov -c:v copy -an linuxmi.mp4  -an用于删除音轨,同时通过-c:v copy选项保留视频轨道。 1.7 将第 99 帧导出为图像
ffmpeg -i linuxmi.mov -vf select=eq(n, 98) -vframes 1 linuxmi.png  由于帧数从 0 开始,所以选项应该是select=eq(n, 98),而不是select=eq(n, 99)。 1.8 5秒导出一帧到一张图片
ffmpeg -i linuxmi.mov -ss 00:05:00 -vframes 1 linuxmi.png  2.高级编辑功能
您可以将以下选项与上述任何编解码器设置结合使用。
2.1 从源文件中剪切特定范围
ffmpeg -i linuxmi.mov -ss 00:05:00 -t 12 linuxmi.mp4  输出文件将从源文件的 5 分钟开始,最大长度为 12 秒,这意味着如果源文件长于该时间,则输出视频将在源视频的 0012 结束。
或者,-ss 0000 -to 0012或-ss 300 -t 12可用于相同的结果。-ss可以不带-t选项使用。 2.2 调整视频大小
调整为 1920x1080
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com ffmpeg -i linuxmi.mov -vf scale=1920:1080 linuxmi.mp4 将宽度调整为 1920 保持源比率
ffmpeg -i linuxmi.mov -vf scale=1920:-1 linuxmi.mp4   
将宽度调整为 1920,但使用黑色填充将高度设置为 2160
ffmpeg -i linuxmi.mov -vf scale=1920:-1, pad=1920-1color=black linuxmi.mp4   
2.3 改变视频播放速度
2 倍速度
ffmpeg -i linuxmi.mov -vf setpts=pts/2 -af asetpts=pts/2 linuxmi.mp4  1/2x 速度
ffmpeg -i linuxmi.mov -vf setpts=pts/.5 -af asetpts=pts/.5 linuxmi.mp4  pts代表演示时间戳。您可以通过分别在视频过滤器 ( -vf) 和音频过滤器 ( -af)上给出不同的数字来应用不同的视频和音频速度。 2.4 设置每秒帧数(fps)
ffmpeg -i linuxmi.mov -vf fps=30 linuxmi.mp4  2.5 合并多个视频
ffmpeg -safe 0 -f concat -i <( for f in $pwd/*.@(mov|mp4); do printf file ${f}; done; ) -c copy linuxmi.mov  上面的命令将当前目录中的所有 .mov 和 .mp4 文件合并并创建output.mov文件。所有视频必须具有相同的尺寸比以避免拉伸或变形。 2.6 设置画面组(gop)
gop(group of pictures)策略影响编码质量,所谓gop,意思是画面组,一个gop就是一组连续的画面。
ffmpeg -i linuxmi.mov -g 300 linuxmi.mp4 gop 表示两个关键帧之间的距离。 2.7 复制源媒体的元数据
ffmpeg -i source.mov -map_metadata 0 -movflags use_metadata_tags linuxmi.mp4由于某些视频存储自定义元数据,此命令可能无法正确复制所有数据。
如果要检查元数据,请安装exiftool并运行:exiftool -g1 -a -s -gps* linuxmi.mp4`或者,您可以使用 exiftool 复制元数据,如下所示:exiftool -tagsfromfile source.mov -all:all linuxmi.mp4   


力矩马达的工作原理_力矩马达结构
华为Mate20X 5G 拆解,射频前端方案浮出水面
线轨与硬轨加工中心机的区别在哪里,哪个更好用
日研发消防机器人 可用水柱操控方向
贸泽电子与Analog Devices联手推出新电子书《Industry 4.0 and Beyond》
音视频图像处理神器FFmpeg有用的命令示例
WiFi 6到底需不需要升级
游戏开发不再难:华为这款服务器为小程序与 PC 游戏提供强大支持
STM32中的SysTick时钟源来自哪里?
华为首次携端到端安全能力集体亮相2023国家网络安全宣传周
放大器共模抑制比参数定义与其影响的评估方法
消除信号反射的匹配方式介绍
Melexis推出全新智能分流器电流传感器,融入可靠的安全性
SpaceX SN4星际飞船原型机将进行150米高空测试
WTN6语音芯片在防盗报警器的应用
微雪电子 树莓派游戏机扩展板|GamePi43 4.3寸屏介绍
特斯拉延长标准续航升级版Model 3在国内的交付时间
减少焊接机器人应力与变形的工艺措施
台积电将在2021年开设新研发中心,致力于研究2纳米芯片
idc是什么意思_idc机房是什么