FFmpeg 命令行

FFmpeg命令行帮助

#>ffmpeg -h

#>ffmpeg -h long

#>ffmpeg -h full

 

将视频按照指定的宽高输出

#>ffmpeg -i input.mp4 -s 480×360 output.mp4

 

将多个视频合并成一个视频

#两个视频左右
#>ffmpeg -i Touch1.avi -i Touch2.avi -filter_complex "[0:v]pad=iw*2:ih[a];[a][1:v]overlay=w" TouchLR.avi
#四个视频田字
#>ffmpeg -i Touch1.avi -i Touch2.avi -i Touch3.avi -i Touch4.avi
  -filter_complex "[0:v]pad=iw*2:ih*2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=0:h[c];[c][3:v]overlay=w:h" TouchTBLR.avi

 

剪切视频尺寸

#>ffmpeg.exe  -i  in.mp4
  -vf  crop=500:ih:390:0
  out.mp4

crop=输出宽:输出高:原视频中起始位置x:原视频中起始位置y

iw 输入视频宽度
ih 输入视频高度

 

单张图片生成视频

#>ffmpeg.exe -r 25 -loop 1 -i 1.jpg -pix_fmt yuv420p -vcodec libx264 -b:v 6000k -r:v 25 -preset medium -crf 30 -s 2000x2000 -vframes 250 -r 25 -t 60
out.mp4 #>ffmpeg.exe -r 25 -loop 1 -i 1.jpg -pix_fmt yuv420p -vcodec libx264 -b:v 6000k -r:v 25 -preset medium -crf 30 -s 2000x2000 -vframes 1500 -r 25 -t 60
out.mp4 #>ffmpeg -r 15 -f image2 -loop 1 -i “%img%” -i “%audio%” -s 720x480 -pix_fmt yuvj420p -t 930 -vcodec mpeg4 “%output%注意:因为输入的图片有yuv420,yuv444等各种格式,因此必须加入 -pix_fmt yuvj420p 参数。
-loop 1 参数加入的原因是因为只有一张图片,因此需要通过loop作为输入流形成视频。
-t 930 是设置输出的视频的长度,如果有loop 而没有t参数,将会无限的合成下去。
而没有 loop和-t 视频轨道则会只有一张图片,视频轨道的时间只有几毫秒。而音频轨道则会是音频的长度,造成音频和视频轨道时间不一致。一些软件的播放或者视频网站的转码就会出现问题。

 

将视频生成序列图片

#>ffmpeg.exe  -i  in.mp4
  -f  image2
  outpath\%d.png

 

将动态图片gif生成序列图片

#>ffmpeg.exe  -i  in.gif
  outpath/%d.bmp

 

使用GPU加速编码

#>ffmpeg.exe -encoders
查看支持的编码器名称

#>ffmpeg.exe -s 640x480 -i h264_qsv.yuv
  -vcodec h264_qsv  -preset:v veryfast
  out.mp4

 

posted @ 2019-09-25 10:46  希广闻  阅读(362)  评论(0编辑  收藏  举报