- A+
安装:
参数详解:
扫描二维码下载客户端查询,如下:
实例一:
将mp4转换avi,命令如下
ffmpeg -i 1543503765258.mp4 1543503765258.avi
将mp4转换ts,命令如下
ffmpeg -i input.mp4 output.ts
其他以此类推
实例二:
去掉视频中的音频,命令如下:
ffmpeg -i 1543503765258.mp4 -vcodec copy -an output.mp4
实例三:
视频剪裁,比如从时间为00:00:25开始,截取10秒钟的视频,命令如下:
ffmpeg -ss 00:00:25 -t 00:00:10 -i 1543503765258.mp4 -vcodec copy -acodec copy output.mp4
-ss表示开始切割的时间,-t表示要切多少。上面就是从开始,切5秒钟出来。
实例四:
提取视频中音频,命令如下:
ffmpeg -i 1543503765258.mp4 -acodec copy -vn output.aac
mp4默认的audio codec是aac,如果不是会出错,这时我们采取强制手段转化,命令如下:
ffmpeg -i 1543503765258.mp4 -acodec aac -vn output.aac
实例五:
视频转音频,命令如下:
ffmpeg -i 1543503765258.mp4 -vn 1543503765258.mp3
或者对音频转码,命令如下:
ffmpeg -i 1543503765258.mp4 -vn -ar 44100 -ac 2 -ab 320 -f mp3 1543503765258.mp3
这里,参数如下:
- -vn - 表示我们已在输出文件中禁用了视频录制。
- -ar - 设置输出文件的音频。使用的常用值是22050,44100,48000 Hz。
- -ac - 设置音频通道数。
- -ab - 表示音频比特率。
- -f - 输出文件格式。在我们的例子中,它是mp3格式。
实例六:
更改视频文件的分辨率,命令如下:
ffmpeg -i 1543503765258.mp4 -filter:v scale = 1280:720 -c:copy output1.mp4
或者
ffmpeg -i 1543503765258.mp4 -s 1280x720 -c:output2.mp4
实例七:
压缩视频,命令如下:
ffmpeg -i 1543503765258.mp4 -vf scale = 1280:-1 -c:v libx264 -preset veryslow -crf 24 output3.mp4
请注意,如果您尝试缩小视频文件大小,则会失去质量。如果24过于激进,您可以将该crf值降低到23或更低。
实例八:
音频压缩,命令如下:
我们假设您有一个320 kbps比特率的音频文件。您想通过将比特率更改为任何较低的值来压缩它,如下所示。
$ ffmpeg -i input.mp3 -ab 128 output.mp3
各种可用音频比特率列表如下:
- 96kbps
- 112kbps
- 128kbps
- 160kbps
- 192kbps
- 256kbps
- 320kbps
实例九:
视频中提取图像 ,命令如下:
ffmpeg -i 1543503765258.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开始,依此类推。
实例十:
视频文件拆分,命令如下:
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显示下一部分视频的开始时间戳。这意味着第二部分将从第30秒开始,并将一直持续到原始视频文件的末尾。
实例十一:
多视频合并
创建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 -safe 0 -i join.txt -c copy output.mp4
实例十二:
获取视频播放时长,命令如下:
#ffmpeg -i 1543503765258.mp4 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,// 00:00:05.99
实例十三:
视频添加水印,命令如下:
ffmpeg -y -i 1543503765258.mp4 -acodec copy -vf "movie=d4b927d2d3685783b824b8f98e66bd4d.png [logo]; [in][logo] overlay=enable='lte(t,1)' [out]" out.mp4
例子说明: overlay=enable='lte(t,1)' ,这个参数表示,水印在前一秒显示。
实例十四:
将rtmp流,以文件的形势保存到本地,命令如下:
ffmpeg -i "rtmp://it.baiked.com:1935/live/hello live=1" -acodec copy -vcodec copy -f mp4 -y test.mp4
实例十五:
视频转换为gif格式,命令如下:
ffmpeg -ss 00:00:20 -i 1543503765258.mp4 -to 10 -r 10 -vf scale=200:-1 cutekid_cry.gif
这里,
- -ss:表示GIF的起点
- -i:输入文件
- 1543503765258.mp4:我的视频文件名
- -to:GIF文件的结束位置
- -r:帧速率。您可以增加该值以获得更高质量的GIF文件
- -vf:过滤图。缩放所需大小的GIF图像。
实例十六:
使用ffmpeg推流,命令如下:
ffmpeg -re -i 1543503765258.mp4 -vcodec copy -acodec aac -b:v 800k -b:a 32k -f flv rtmp://localhost/live
这里
- -re 按照视频的FPS进行推流,如果不加这个参数的话……反正不行。
- -i 指定输入文件地址。
- -vcodec copy 指定视频编码为复制。
- -acodec aac 音频使用aac编码。后面的-b:a 192k则是指定码率。
- -f flv 指定输出格式,这个必须是flv才能推到直播服务器。
实例十七:
视频去水印
例如,去除某音左上角的水印,命令如下:
ffmpeg -i 1543565695967.mp4 -vf "delogo=x=10:y=10:w=250:h=100:show=0" out.mp4
实例十八:
合并m3u8流为mp4
ffmpeg -i https://xxxx.com/201xsdf28/cdosdfsfsfeweH/index.m3u8 test.mp4
- 安卓客户端下载
- 微信扫一扫
- 微信公众号
- 微信公众号扫一扫