视频与图片
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/647ea57c7d6bcae1ac74ad2ec05b7296.png)
视频转gif
视频转gif
ffmpeg -i out.mp4 -ss 00:00:00 -t 10 out.gif
t的格式
-t 1.1
-t 00:00:01
-r 帧率每秒的帧数,数值越大越流畅
视频中提取任意一帧图片
ffmpeg -i test.asf -y -f image2 -ss 00:01:00 -vframes 1 test1.jpg
or
ffmpeg -i test.asf -y -f image2 -ss 60 -vframes 1 test1.jpg
//png格式不会压缩
ffmpeg -i 1.avi -f image2 -ss 2 -vframes 1 test1.png
视频转图片
视频转图片,-r 帧率每秒钟转化1张,image2为image协议的第二版
ffmpeg -i 2.mp4 -r 1 -f image2 image-%d.jpg
图片转视频
图片转视频,jpg例子
从一个文件序列 img-1.jpeg, img-2.jpeg, ...,创建视频,帧率为10:
ffmpeg -framerate 10 -i img-%d.jpeg out.mkv
ffmpeg -framerate 30 -i image-%d.jpg -y out.mp4
//png图片的合成,如果没有特殊加背景,则背景是黑色的。
ffmpeg -framerate 30 -i image-%d.png -c:v libx264 -pix_fmt yuv420p -y out3.mp4
类似上例,但开始的数字是100,即索引是从100开始计数:
ffmpeg -framerate 10 -start_number 100 -i 'img-%d.jpeg' out.mkv
读取"*.png" 以通配符模式处理,这将包含所有".png"结尾的文件:
ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
单张图片合成视频
//单张图片合成视频,这里需要用到-loop 1 开启循环,和-t 10 设置为10秒
ffmpeg -r 1 -f image2 -loop 1 -i 1.png -t 10 out.mp4 -y
单张图片生成视频,通过滤镜完成
ffmpeg -i 1.png -filter_complex color=s=500x500:c=black,trim=0:5[vbg];[0:v]scale=500x500[sv];[vbg][sv]overlay[vout] -map [vout] -y 1.mp4
ffmpeg -i 1.jpg -filter_complex color=s=720x1280:c=black[vbg];[0:v]scale=720x1280[sv];[vbg][sv]overlay[vout] -map [vout] -ss 0 -to 10 -y 1.mp4
ffmpeg
-i
1.png
-filter_complex
color=s=500x500:c=black,trim=0:5[vbg];
[0:v]scale=500x500[sv];
[vbg][sv]overlay[vout]
-map
[vout]
-y
1.mp4