FFmpeg 在 Windows 和 Linux 之间的不同功能

FFmpeg 在 Windows 和 Linux 之间的不同功能

在装有 FFmpeg 版本的 Windows 机器上:

ffmpeg version N-93532-g772c73e61f Copyright (c) 2000-2019 the FFmpeg developers

视频转换missingKeyFrameProblem.mp4作品。

但是,在具有以下版本的 Linux 机器上

ffmpeg version 3.2.14-1~deb9u1 Copyright (c) 2000-2019 the FFmpeg developers

它失败:

ffmpeg -i missingKeyFrameProblem.mp4 output.mp4

在 Linux 机器上我收到此错误:

 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x55c2106c8c00] Missing key frame while reordering index according to edit list
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x55c2106c8c00] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 1280x960, 1459 kb/s): unspecified pixel format
 Consider increasing the value for the 'analyzeduration' and 'probesize' options

如何在 Linux 机器上转换文件?

答案1

考虑:将 Linux ffmpeg 升级到至少 3.3,并包含选项:-ignore_editlist 1

我使用您的文件的结果:

(1)WSL(适用于 Linux 的 Windows 子系统)Ubuntu:

ffmpeg version 3.4 Copyright (c) 2000-2017 the FFmpeg developers

ffmpeg -ignore_editlist 1 -i missingKeyFrameProblem.mp4 output1.mp4

(2)Raspberry Pi 4 上的 Raspbian Buster:

ffmpeg version 4.1.4-1+rpt1~deb10u1 Copyright (c) 2000-2019 the FFmpeg developers

ffmpeg -ignore_editlist 1 -i missingKeyFrameProblem.mp4 output2.mp4

两个系统均未报告任何错误。WSL 机器是配备 16 GB RAM 的 i7,成功以约 110 fps 的速度编码,Raspberry Pi 是配备 4 GB RAM 的型号 4 B,以约 18 fps 的速度编码(!):文件如下:

-rwxrwxrwx 1 root root  11M Sep  8 19:57 missingKeyFrameProblem.mp4
-rwxrwxrwx 1 root root 9.0M Sep  8 20:12 output1.mp4
-rwxrwxrwx 1 root root 9.0M Sep  8 20:02 output2.mp4

电影是一堵煤渣砌块墙,上面有木栅栏,长 39 秒。

答案2

看来编解码器无法从损坏的输入视频中获取像素格式。

尝试添加-pixel_format yuv420p选项:

ffmpeg  -i  missingKeyFrameProblem.mp4   -pixel_format yuv420p    output.mp4

相关内容