ffmpg常用处理视频命令

ffmpg控制码率

ffmpeg -i input.mp4 -b:v 2000k output.mp4

ffmpeg官方wiki比较建议,设置b:v时,同时加上-bufsize用于设置码率控制缓冲器的大小,设置的好处是,让整体的码率更趋近于希望的值,减少波动。(简单来说,比如1 2的平均值是1.5, 1.49 1.51 也是1.5, 当然是第二种比较好)

ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k output.mp4

-minrate -maxrate就简单了,在线视频有时候,希望码率波动,不要超过一个阈值,可以设置maxrate。

ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k -maxrate 2500k output.mp4

视频编码格式转换

比如一个视频的编码是MPEG4,想用H264编码

ffmpeg -i input.mp4 -vcodec h264 output.mp4

当然了,如果ffmpeg当时编译时,添加了外部的x265或者X264,那也可以用外部的编码器来编码。(不知道什么是X265,可以Google一下,简单的说,就是她不包含在ffmpeg的源码里,是独立的一个开源代码,用于编码HEVC,ffmpeg编码时可以调用它。当然了,ffmpeg自己也有编码器)

ffmpeg -i input.mp4 -c:v libx265 output.mp4
ffmpeg -i input.mp4 -c:v libx264 output.mp4

视频添加logo

#左上角:
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay output.mp4

#右上角:
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=W-w output.mp4

#左下角:
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=0:H-h output.mp4

#右下角:
ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=W-w:H-h output.mp4

ffmpeg -i test.mp4 -vf "movie=logo.jpg[wm];[in][wm]overlay=30:10[out]" image_out.mp4

命令中-vf指定了使用滤镜,movie为这里使用的滤镜,overlay滤镜用来描述水印在视频的位置信息。

帧率

常见的帖率有25、30,高清电视有50、60帧。

一般帧率越高,视频画面越流畅。但是人类的眼睛需要每秒至少15帧才能将图像连贯在一起~

ffmpeg -i test.MP4 -r 25 output.mp4

合并M3U8 TS KEY文件

ts文件.m3u8文件和key.key文件全部保存在同一目录下,然后执行下面的命令。

ffmpeg -allowed_extensions ALL -i index.m3u8 -c copy out.mp4

视频ts切片生成m3u8

ffmpeg -i input.mp4 -vcodec copy -acodec copy -hls_time 60 -hls_list_size 0 index.m3u8
  • -hls_time n: 设置每片的长度,默认值为2。单位为秒
  • -hls_list_size n:设置播放列表保存的最多条目,设置为0会保存有所片信息,默认值为5

创作不易,求关注,点赞,收藏,谢谢~

你可能感兴趣的:(ffmpg)