ffmpeg - ffprobe 显示 h264 流的比特率为 0.0 或 N/A

标签 ffmpeg bitrate

我有一个 11 分钟的 .mkv 文件,其中包含一个 h264 视频流,占用 184MB 空间。我想减小这个文件的大小。我想我可以降低比特率。但是 ffprobe 不输出任何内容。事实上,它说文件的长度是根据比特率计算的,因此可能不准确,但是在摘要或 [FORMAT] 条目中都没有比特率:

> ffprobe -show_format file.mkv
[matroska,webm @ 0x7f8e8084b200] Estimating duration from bitrate, this may be inaccurate
Input #0, matroska,webm, from 'file.mkv':
  Duration: 00:11:11.59, start: 0.000000, bitrate: N/A
    Stream #0.0: Video: h264 (High), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 1k tbn, 59.94 tbc (default)
    Stream #0.1: Audio: aac, 48000 Hz, 5.1, s16 (default)
[FORMAT]
...
bit_rate=0.000000 
[/FORMAT]

谢谢你。

编辑:我的理解是 H.264 是一种协议(protocol)。因此,根据 ffprobe 文档,我无法判断 h264 编解码器使用什么实现。如果有人知道,我将不胜感激。

最佳答案

文件大小/假定持续时间 = 比特率。 (184 MB * 8192 [将 MB 转换为千比特])/671 秒 = ~2246 千比特每秒。当然这是整个文件的平均比特率,而不仅仅是视频流。

如果您要针对特定​​的输出文件大小(例如 100 MB)并希望音频占用 128 kb/s:(100 MB * 8192)/671 秒 = 1220 kb/s 总比特率 - 128 kb/s 所需音频比特率 = 1092 kb/s 视频比特率。

实际输出文件的最终结果可能会有所不同。

关于ffmpeg - ffprobe 显示 h264 流的比特率为 0.0 或 N/A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10034059/

相关文章:

python - 无法从 QProcess 将图像发送到 ffmpeg 标准输入

ffmpeg 映射过滤器选项

ffmpeg - 将背景转换为黑色?

ios - 如何在 iOS 中获取现有 MP3 或 AAC 的比特率?

video - FFMPEG - bufsize 公式

video - FFMPEG - avformat_open_input() 总是用 flv 文件返回错误

ffmpeg - 使用ffmpeg将rtsp流式传输到rtmp时丢失数据包错误

audio - .wav 音频文件的每个样本结构的位数是多少

streaming - 比特率 JWplayer

android - 如何为 MediaCodec 设置平均+最大比特率来编码 H.264 视频?