我想将视频转换为图像,进行一些图像处理并将图像转换回视频。
这是我的命令:
./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
文件的比特率?
最佳答案
您可以使用 qscale
参数代替比特率,例如
ffmpeg -y -i "image%d.png" -vcodec mpeg4 -q:v 1 output_1.avi
q:v
是 qscale:v
的缩写。 1
可能会产生太大的文件。 4
-6
是一个不错的使用范围。
关于image - ffmpeg 转换图像<->视频会导致伪影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36200068/