前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FFMPEG Mac 命令行

FFMPEG Mac 命令行

作者头像
developerbfl
发布2021-02-05 11:27:33
1.6K0
发布2021-02-05 11:27:33
举报
文章被收录于专栏:iOS 开发iOS 开发

FFmpeg 的支持格式的

代码语言:javascript
复制
 ffmpeg -formats

1、 为显示你的媒体文件细节

代码语言:javascript
复制
ffmpeg -i video.mp4
ffmpeg -i image.png
> 只看媒体文件信息
代码语言:javascript
复制
ffmpeg -i video.mp4 -hide_banner
ffmpeg -i image.png -hide_banner

2、 转换视频文件到不同的格式

代码语言:javascript
复制
ffmpeg -i video.mp4 video.avi
> 你可以转换媒体文件到你选择的任何格式
代码语言:javascript
复制
例如,为转换 YouTube flv 格式视频为 mpeg 格式
ffmpeg -i video.flv video.mpeg

如果你想维持你的源视频文件的质量,使用 -qscale 0
ffmpeg -i input.webm -qscale 0 output.mp4

3、转换视频文件到音频文件

代码语言:javascript
复制
ffmpeg -i input.mp4 -vn output.mp3

此外,你也可以对输出文件使用各种各样的音频转换编码选项,像下面演示。

ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -ab 320 -f mp3 output.mp3
在这里,

-vn – 表明我们已经在输出文件中禁用视频录制。
-ar – 设置输出文件的音频频率。通常使用的值是22050 Hz、44100 Hz、48000 Hz。
-ac – 设置音频通道的数目。
-ab – 表明音频比特率。
-f – 输出文件格式。在我们的实例中,它是 mp3 格式

4、更改视频文件的分辨率

代码语言:javascript
复制
ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4
或,
ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4

5、压缩视频文件

代码语言:javascript
复制
ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4

减小视频文件的大小,将损失视频质量。如果 24 太有侵略性,可以降低 -crf 值到或更低值。
可以通过下面的选项来转换编码音频降低比特率,使其有立体声感,从而减小大小。

-ac 2 -c:a aac -strict -2 -b:a 128k

6、压缩音频文件

代码语言:javascript
复制
 ffmpeg -i input.mp3 -ab 128 output.mp3

音频比特率列表是:
96kbps
112kbps
128kbps
160kbps
192kbps
256kbps
320kbps

7、从一个视频文件移除音频流

代码语言:javascript
复制
ffmpeg -i input.mp4 -an output.mp4

-an 表示没有音频

8、从一个媒体文件移除视频流(转换所给定媒体文件为音频文件)

代码语言:javascript
复制
ffmpeg -i input.mp4 -vn output.mp3

-vn 表示没有视频

可以使用 -ab 标志来指出输出文件的比特率
ffmpeg -i input.mp4 -vn -ab 320 output.mp3

9、从视频中提取图像

代码语言:javascript
复制
ffmpeg -i input.mp4 -r 1 -f image2 image-%2d.png

-r – 设置帧速度。即,每秒提取帧到图像的数字。默认值是 25。
-f – 表示输出格式,即,在我们的实例中是图像。
image-%2d.png – 表明我们如何想命名提取的图像。在这个实例中,命名应该像这样image-01.png、image-02.png、image-03.png 等等开始。如果你使用 %3d,那么图像的命名像 image-001.png、image-002.png 等等开始。

10、裁剪视频

代码语言:javascript
复制
ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4
input.mp4 – 源视频文件。
-filter:v – 表示视频过滤器。
crop – 表示裁剪过滤器。
w – 我们想自源视频中裁剪的矩形的宽度。
h – 矩形的高度。
x – 我们想自源视频中裁剪的矩形的 x 坐标 。
y – 矩形的 y 坐标。
比如说你想要一个来自视频的位置 (200,150),且具有 640 像素宽度和 480 像素高度的视频,命令应该是:

$ ffmpeg -i input.mp4 -filter:v "crop=640:480:200:150" output.mp4
请注意,剪切视频将影响质量。除非必要,请勿剪切

11、转换一个视频的具体的部分

代码语言:javascript
复制
有时,你可能想仅转换视频文件的一个具体的部分到不同的格式。以示例说明,下面的命令将转换所给定视频input.mp4 文件的开始 10 秒到视频 .avi 格式。

ffmpeg -i input.mp4 -t 10 output.avi

12、设置视频的屏幕高宽比

代码语言:javascript
复制
ffmpeg -i input.mp4 -aspect 16:9 output.mp4

13、添加海报图像到音频文件

代码语言:javascript
复制
你可以添加海报图像到你的文件,以便图像将在播放音频文件时显示。这对托管在视频托管主机或共享网站中的音频文件是有用的。
ffmpeg -loop 1 -i inputimage.jpg -i inputaudio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

14、使用开始和停止时间剪下一段媒体文件

代码语言:javascript
复制
可以使用开始和停止时间来剪下一段视频为小段剪辑,我们可以使用下面的命令。

$ ffmpeg -i input.mp4 -ss 00:00:50 -codec copy -t 50 output.mp4
在这里,

–s – 表示视频剪辑的开始时间。在我们的示例中,开始时间是第 50 秒。
-t – 表示总的持续时间。
当你想使用开始和结束时间从一个音频或视频文件剪切一部分时,它是非常有用的。

类似地,我们可以像下面剪下音频。

$ ffmpeg -i audio.mp3 -ss 00:01:54 -to 00:06:53 -c copy output.mp3

15、切分视频文件为多个部分

代码语言:javascript
复制
一些网站将仅允许你上传具体指定大小的视频。在这样的情况下,你可以切分大的视频文件到多个较小的部分,像下面。

$ ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4
在这里,

-t 00:00:30 表示从视频的开始到视频的第 30 秒创建一部分视频。
-ss 00:00:30 为视频的下一部分显示开始时间戳。它意味着第 2 部分将从第 30 秒开始,并将持续到原始视频文件的结尾

16、接合或合并多个视频部分到一个

代码语言:javascript
复制
FFmpeg 也可以接合多个视频部分,并创建一个单个视频文件。

创建包含你想接合文件的准确的路径的 join.txt。所有的文件都应该是相同的格式(相同的编码格式)。所有文件的路径应该逐个列出,像下面。

file /home/sk/myvideos/part1.mp4
file /home/sk/myvideos/part2.mp4
file /home/sk/myvideos/part3.mp4
file /home/sk/myvideos/part4.mp4
现在,接合所有文件,使用命令:

ffmpeg -f concat -i join.txt -c copy output.mp4
如果你得到一些像下面的错误;

[concat @ 0x555fed174cc0] Unsafe file name '/path/to/mp4'
join.txt: Operation not permitted
添加 -safe 0 :

ffmpeg -f concat -safe 0 -i join.txt -c copy output.mp4
上面的命令将接合 part1.mp4、part2.mp4、part3.mp4 和 part4.mp4 文件到一个称为 output.mp4 的单个文件中。

17、添加字幕到一个视频文件

代码语言:javascript
复制
fmpeg -i input.mp4 -i subtitle.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mp4

18、预览或测试视频或音频文件

代码语言:javascript
复制
你可能希望通过预览来验证或测试输出的文件是否已经被恰当地转码编码。为完成预览,你可以从你的终端播放它,用命令:

ffplay video.mp4
类似地,你可以测试音频文件,像下面所示。
ffplay audio.mp3

19、变速

代码语言:javascript
复制
为增加视频播放速度,运行:

ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4
为降低你的视频速度,你需要使用一个大于 1 的倍数。为减少播放速度,运行:

ffmpeg -i input.mp4 -vf "setpts=4.0*PTS" output.mp4

20、倒放

代码语言:javascript
复制
1.视频倒放,无音频
ffmpeg -i inputfile.mp4 -filter_complex [0:v]reverse[v] -map [v] -preset superfast reversed.mp4

2.视频倒放,音频不变
ffmpeg -i inputfile.mp4 -vf reverse reversed.mp4

3.音频倒放,视频不变
ffmpeg -i xxx.mp4 -vf reverse -y reverse.mp4
或
ffmpeg -i inputfile.mp4 -map 0 -c:v copy -af "areverse" reversed_audio.mp4


4.音视频同时倒放
ffmpeg -i inputfile.mp4 -vf reverse -af areverse -preset superfast reversed.mp4
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • FFmpeg 的支持格式的
  • 1、 为显示你的媒体文件细节
  • 2、 转换视频文件到不同的格式
  • 3、转换视频文件到音频文件
  • 4、更改视频文件的分辨率
  • 5、压缩视频文件
  • 6、压缩音频文件
  • 7、从一个视频文件移除音频流
  • 8、从一个媒体文件移除视频流(转换所给定媒体文件为音频文件)
  • 9、从视频中提取图像
  • 10、裁剪视频
  • 11、转换一个视频的具体的部分
  • 12、设置视频的屏幕高宽比
  • 13、添加海报图像到音频文件
  • 14、使用开始和停止时间剪下一段媒体文件
  • 15、切分视频文件为多个部分
  • 16、接合或合并多个视频部分到一个
  • 17、添加字幕到一个视频文件
  • 18、预览或测试视频或音频文件
  • 19、变速
  • 20、倒放
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档