FFmpeg 视频/音频流参数顺序是什么

FFmpeg 视频/音频流参数顺序是什么

有时视频流看起来像这样:

Video: h264 (avc1 / 0x31637661), yuv420p(tv, smpte170m), 640x360, 935 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default)

有时会有所不同:

Video: flv1, yuv420p, 320x240, 512 kb/s, 15 fps, 15 tbr, 1k tbn

或者:

Video: h264 (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 2195 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)

根据视频属性,输出看起来不同。

我正在尝试创建一个java类来单独获取这些属性。例如getBitrate,,,...getFPSgetAudioSampleRate

目前,我在我的应用中使用它ffprobe只是为了获取媒体信息。这样我就可以禁用这个额外的选项并减小应用大小。

为此我需要知道VideoAudio流所有参数及其顺序。

我没有找到任何文档,你能帮我吗?

您可以在这里看到我所做的事情: https://github.com/symphonyrecords/FFmpegUtils

答案1

正如您所说,输出将根据流本身而变化。这是因为 ffmpeg 包含许多不同的编码器和解码器,每个编码器和解码器都有自己的工作方式。此外,不同的流格式可能不具有相同的功能,并且需要显示不同类型的信息来描述流。所以没有固定的顺序。更重要的是,未来格式规范的变化甚至 ffmpeg 的功能都可能改变顺序。

不要试图解析一行内容不可预测的输出,你应该看看-of旗帜用于 ffprobe。这可让您选择 ffprobe 的不同输出格式,包括几种机器可读的不同格式(cvs、ini、json、xml……)。

相关内容