我想将视频转换为图像,进行一些图像处理并将图像转换回视频。
这是我的命令:
./ffmpeg -r 30 -i $VIDEO_NAME "image%d.png"
./ffmpeg -r 30 -y -i "image%d.png" output.mpg
但在output.mpg
视频中,我有一些人工制品like in jpeg。
我也不知道如何去除fps,我设置了fps = 30(-r 30
)。
当我在没有-r
的情况下使用上面的第一个命令时,它会生成很多图像> 1kk,但是我使用-r 30
选项产生与此命令计算相同数量的图像帧数:
FRAME_COUNT=`./ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_read_frames -of default=nokey=1:noprint_wrappers=1 $VIDEO_NAME`
所以我的问题是:
如何确定帧率?
如何将图片转换为视频而不降低初始质量?
更新
在我删除-r
选项后,似乎这有帮助
Image sequence to video quality
所以结果命令是:
./ffmpeg -y -i "image%d.png" -vcodec mpeg4 -b $BITRATE output_$BITRATE.avi
但我仍然不确定如何选择比特率。
如何查看原始.mp4
文件的比特率?
答案 0 :(得分:2)
您可以使用qscale
参数代替比特率,例如
ffmpeg -y -i "image%d.png" -vcodec mpeg4 -q:v 1 output_1.avi
q:v
是qscale:v
的缩写。 1
可能会生成过大的文件。 4
- 6
是一个不错的范围。