如何使用 ffmpeg 检查文件是否有 0kb 流?

如何使用 ffmpeg 检查文件是否有 0kb 流?

我有很多webm文件。大多数文件都很好(视频 + 音频流)。其中一些不知何故有 2 个流,但音频流为 0 kb。文件来自媒体服务器,所以我无法更改这一点。

我使用脚本对这些文件进行了大量工作(修剪、缩放视频、合并等)。但这些文件会导致错误。示例(简化命令,没有视频相关过滤器):

ffmpeg -y -i file1.webm -i file2.webm -filter_complex "[0:a][1:a]amerge[a]" -map "[a]" -ac 2 output.opus

文件file1.webm的音频流为空,file2.webm音频流正常。文件output.opus为空,大小为 137 字节。输出命令为https://pastebin.com/57BMDGWU 它包含以下相关信息:

[Parsed_amerge_0 @ 0x42ec380] 输入 1 没有通道布局

[Parsed_amerge_0 @ 0x42ec380] 输入通道布局重叠:输出布局将由不同输入通道的数量决定

ffprobe 显示有流: ffprobe -i file1.webm -show_streams -select_streams a -loglevel error https://pastebin.com/VR9EV0xm

问题是,如果有空的音频流,如何..忽略它并输出非空流?

相关内容