video - ffmpeg 比特率比请求的大 10%

标签 video ffmpeg video-streaming video-processing adaptive-bitrate

一个简单的问题。我有一个 ffmpeg脚本。
我请求 -b:v:0 1000k但得到输出 BANDWIDTH=1100000在我的主播放列表中 - 我期待 BANDWIDTH=1000000如您所见,没有音频流。为什么 BANDWIDTH 每次都比请求的比特率大 10%?
提前致谢。脚本和输出如下。
脚本:

ffmpeg -i rgb.mp4 -hide_banner # dump video stream info

rm -rf hls

ffmpeg -i rgb.mp4 \
  -v warning -preset ultrafast -g 60 -sc_threshold 0 \
  -map 0:0 -map 0:0 -map 0:0 -map 0:0 \
  -s:v:0 1440x1080 -c:v:0 libx264 -b:v:0 1000k \
  -s:v:1 1440x1080 -c:v:1 libx264 -b:v:1 2000k \
  -s:v:2 1920x1440 -c:v:2 libx264 -b:v:2 3000k \
  -s:v:3 1920x1440 -c:v:3 libx264 -b:v:3 4000k \
  -var_stream_map "v:0 v:1 v:2 v:3" \
  -master_pl_name master.m3u8 -f hls \
  -hls_time 6 -hls_list_size 0 -hls_playlist_type vod \
  -hls_segment_filename "hls/v%v/chunk%d.ts" "hls/v%v/index.m3u8"

cat hls/master.m3u8
输出:
$ sh ./ffmpeg-test-script.sh
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'rgb.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2021-08-03T11:45:50.000000Z
    encoder         : Lavf59.4.102
  Duration: 00:00:50.04, start: 0.000000, bitrate: 37415 kb/s
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc), 1920x1440, 37412 kb/s, 30 fps, 30 tbr, 19200 tbn (default)
    Metadata:
      creation_time   : 2021-08-03T11:45:50.000000Z
      handler_name    : Core Media Video
      vendor_id       : [0][0][0][0]
    Side data:
      displaymatrix: rotation of -180.00 degrees
At least one output file must be specified
[swscaler @ 000001fae15daf00] deprecated pixel format used, make sure you did set range correctly
[swscaler @ 000001faef115ec0] deprecated pixel format used, make sure you did set range correctly
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=1100000,RESOLUTION=1440x1080,CODECS="avc1.42c028"
v0/index.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=2200000,RESOLUTION=1440x1080,CODECS="avc1.42c028"
v1/index.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=3300000,RESOLUTION=1920x1440,CODECS="avc1.42c032"
v2/index.m3u8

#EXT-X-STREAM-INF:BANDWIDTH=4400000,RESOLUTION=1920x1440,CODECS="avc1.42c032"
v3/index.m3u8

最佳答案

首先,您为 x264 编码器指定视频比特率,该比特率仅适用于来自编码器的比特。
HLS 播放列表中的 BANDWIDTH 参数包括容器(MPEG-2 传输流)开销。

关于video - ffmpeg 比特率比请求的大 10%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70456983/

相关文章:

php - 跟踪视频播放

react 原生视频 : How to manually select video quality

video - 无法使用 FFmpeg 将 MP4 重新混合到 MP4 中(在流 #1 中找不到编解码器的标签)

c - 如何使用 ffmpeg 和 H.265 预缩放帧

android - 在 Android apk 中打包 linux 二进制文件

windows - 如何使用 ffprobe 和批处理返回视频/图像的宽度和高度

video - 限制在其他网站上嵌入 youtube

ios - 当视频滚动到 View 中时自动播放 MPMoviePlayerController

video - 重新采样 H264 视频以降低帧速率,同时保持高图像质量

Android VideoView 不播放 mp4 文件