使用 ffmpeg 将 .mov 转换为未压缩的 .avi 会导致 virtualdub 出现黑屏

使用 ffmpeg 将 .mov 转换为未压缩的 .avi 会导致 virtualdub 出现黑屏

我正在尝试使用 ffmpeg 将 .mov 转换为未压缩的 .avi。由于我不希望质量损失,我使用以下 ffmpeg 命令:

ffmpeg -i toto.mov -vcodec copy -y toto.avi

转换过程完美(视频在 VLC 中运行),但当我使用 virtualdub 打开文件时出现黑屏。

在 VirtualDub 中,根据文件信息我得到以下内容:

Frame size: 800x600, 30.000fps
Length: 802 frames
Decompressor: Internal DIB decoder

如果我没有指定 -pix_fmt 和 -vcodec 参数,ffmpeg 会转换为 mpeg-4 和 yuv420p,但由于文件缩小到大约 400Mo 到 1Mo,因此质量会下降,但视频在 virtualdub 中可以正常工作,此时解压缩器设置为 ffdshow 视频编解码器 (FMP4)。我怀疑这不是 ffdshow,因为我有另一个视频可以与内部 DIB 解码器完美配合。

有什么想法可以在 virtualdub 中获取图像吗?

答案1

首先,您只是更改了媒体容器,而不是编解码器。VirtualDub 可能无法解码原始toto.mov容器中的编解码器。您可以将编解码器转码为 MPEG-4,并将-q:v设置为 1,这样质量就足够好了。

ffmpeg -i toto.mov -q:v 1 -vcodec mpeg4 -y toto.avi

相关内容