ffmpeg命令实战

  • ffmpeg命令实战已关闭评论
  • 142 views
  • A+
所属分类:linux命令

安装:

 

请参照linux下ffmpeg安装

参数详解:

扫描二维码下载客户端查询,如下:

ffmpeg命令实战

实例一:

将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

各种可用音频比特率列表如下:

  1. 96kbps
  2. 112kbps
  3. 128kbps
  4. 160kbps
  5. 192kbps
  6. 256kbps
  7. 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

 

 

  • 安卓客户端下载
  • 微信扫一扫
  • weinxin
  • 微信公众号
  • 微信公众号扫一扫
  • weinxin
avatar