ffmpeg record

深海巨坑ffmpeg的使用记录

服务器上安装

apt install ffmpeg

将多帧图像合成视频

ffmpeg -r 30 -i output_video/%05d.jpg -vcodec libx264 -vf zscale=matrix=709:r=full output_video_fullr.mp4

-vf zscale=matrix=709:r=limited负责转换色域,否则默认转出来是BT.601之类的SD标准。显式指定limited 色域很多种,limited显得饱和度高一些,full色域大,同样数据显得饱和度低一些

这个链接 https://fireattack.github.io/blog/2018/07/03/ffmpeg-commands.html

编码质量控制: -c:v libx264 -preset veryslow -crf 0

将yuv视频分png

ffmpeg -s 1080x720 -pix_fmt yuv420p -i dst_1080x720_30Hz_P420.yuv -vf scale=in_range=full:out_range=full output_ori/%05d.png
-vf scale=in_range=full:out_range=full 来控制色彩
这个链接 https://www.bilibili.com/read/cv6601959/

截取视频片段

按照时间截取

ffmpeg -i input.mp4 -vcodec copy -acodec copy -ss 00:00:00 -to 00:00:05 cutout.mp4 -y

按照帧截取

ffmpeg -i input.mp4 -vf”select=between(n,20,200)” -y -acodec copy cutout.mp4

将YUV转成MP4

ffmpeg -s 640x480 -pix_fmt yuv420p -i output.yuv out3.mp4

将MP4转YUV

ffmpeg -i input.mp4 -s 640x480 -pix_fmt yuv420p output.yuv

视频分帧

ffmpeg -i backlit.mp4 -r 30 backlit/%05d.png

如果改成jpg会有严重压缩

如果转化成png还有压缩的话,可以先将mp4转成yuv, yuv单帧的质量也就是图片单帧能达到的最高质量。然后将yuv视频转化成图像。

将视频拼接

ffmpeg -i peppa_v3_fullr.mp4 -i peppa_v5_fullr_.mp4 -filter_complex "[0:v]pad=iw*2:ih*1[a];[a][1:v]overlay=w" compair_peppa_v3v5.mp4

这个链接 https://blog.csdn.net/Gary__123456/article/details/88742705

转封装

ffmpeg -i xx.mov c:v copy xx.mp4

视频resize

ffmpeg -i testbanding.mp4 -s 1280:720 -aspect “16:9” testbanding_1280x720.mp4

一张图片转视频

ffmpeg -r 10 -f image2 -loop 1 -i 1.jpg -s 1080x1920 -pix_fmt yuvj420p -t 4 -vcodec libx264 1.mp4