使用命令行进行图像处理的方法,主要是 ffmpeg, 除此之外还有一些其它的工具。
FFMPEG
视频转换成图像
1 2
| fps 标识一秒中抽出几帧 ffmpeg -i input.mp4 -vf fps=1 out%d.png
|
视频格式转码
1 2
| ffmpeg -i input.mkv -c:v copy -c:a libfdk_aac -map 0 output.mkv
|
多张图片合成视频
1
| ffmpeg -r 6 -f image2 -pattern_type glob -i 'result/*.jpg' -c:v libx264 -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -threads 20 output.mp4
|
-r
是帧率
-s
转换之后的视频的 width*height, 实践证明,最好不用这个参数
-vf "scale=trunc(iw/2)*2:trunc(ih/2)*2"
自动设置输出
-threads 20
设置 20 个线程
图像格式转换
OpenCV 不能直接读取 gif
格式的图像
1 2
| convert -verbose -coalesce image.gif image.png
|
视频文件转码
1 2
| ffmpeg -i input.mkv -c:v copy -c:a libfdk_aac -map 0 output.mkv
|
连接多个视频为一个文件
1
| mkvmerge -o output.mp4 video1.mp4 \+ video2.mp4 \+ videon.mp4
|