单图片转视频
先产生一个背景后,再做 overlay,这里需要注意一下分辨率的设置,视频源的分辨率要和图片分辨率一样;
ffmpeg -ss 0 -t 30 -f lavfi -i color=c=0x000000:s=1920x1080:r=30 -i ~/Desktop/test.png -filter_complex “[1:v]scale=1920:1080[v1];[0:v][v1]overlay=0:0[outv]” -map [outv] -c:v libx264 ~/Desktop/test.mp4 -y
ffmpeg -ss 0 -t 30 -f lavfi -i color=c=0x000000:s=1920x1080:r=30 -i ~/Desktop/test.png -filter_complex "[1:v]scale=1920:1080[v1];[0:v][v1]overlay=0:0[outv]" -map [outv] -c:v libx264 ~/Desktop/test.mp4 -y
为什么这么转,还 overlay 处理一下?因为直接转图片,默认是按25帧每秒转的,那么转出来的视频的时长只有40ms;视频时长太短了,没有意义;所以通过overlay 来转, 可以设置单图片的输出时长。
多图片转视频
多张图片组转视频
ffmpeg -f image2 -i ~/Desktop/images/image%d.jpg -vcodec libx264 ~/Desktop/test.mp4 -y
图片按固定的帧率转视频
ffmpeg -f image2 -i ~/Desktop/images/image%d.jpg -vcodec libx264 -r 10 ~/Desktop/test.mp4 -y
设置图片切换帧率为每秒一张图片
ffmpeg -r 1 -i ~/Desktop/%d.jpg -vf fps=1 -vcodec libx264 ~/Desktop/test.mp4 -y