首页 文章

是否可以使用MPEG-DASH流式传输多帧速率视频?

提问于
浏览
2

我将mp4视频转码为几个帧速率,如5FPS,10FPS .. 30FPS,并使用MP4Box将它们分段,以便在DASH IF播放器中播放 .

FFMPEG命令生成具有相同分辨率的多帧速率视频:

ffmpeg -i fball.mp4 -f mp4 -vcodec libx264 -profile:v high -vf scale = 1280:-1 -b:v 2000k -minrate 2000k -maxrate 2000k -bufsize 2000k -nal-hrd cbr -g 120 -keyint_min 120 -r 60.0 -flags cgop -sc_threshold 0 -pix_fmt yuv420p -threads 0 -x264opts keyint = 120:min-keyint = 120:sps-id = 1 -an -y fball_720p_60fps.mp4

ffmpeg -i fball.mp4 -f mp4 -vcodec libx264 -profile:v high -vf scale = 1280:-1 -b:v 1000k -minrate 1000k -maxrate 1000k -bufsize 1000k -nal-hrd cbr -g 60 -keyint_min 60 -r 30.0 -flags cgop -sc_threshold 0 -pix_fmt yuv420p -threads 0 -x264opts keyint = 60:min-keyint = 60:sps-id = 1 -an -y fball_720p_30fps.mp4

FFMPEG命令提取音频:

ffmpeg -i fball.mp4 -acodec aac -b:128k -vn -strict -2 -y fball_audio.mp4

用于分段的MP4Box命令:

MP4Box -frag 2000 -dash 2000 -rap -base-url ./segments/ -profile main -segment-name / segments /%s_ -out dash / fball_dash.mpd fball_720p_24fps.mp4 fball_720p_30fps.mp4 fball_720p_60fps.mp4 fball_audio.mp4

  • 段持续时间:2秒

  • GOP长度:片段持续时间x视频的FPS

  • 分辨率:所有视频均为720p

结果是VIDEO DECODE错误或在切换帧速率时停止 .

我在转码时犯了什么错误?是否可以使用MPEG DASH流式传输多帧速率视频?

2 回答

  • 0

    MP4Box 命令中添加 -profile:dashavc264:onDemand 解决了VIDEO DECODE错误问题 .

    MP4Box -dash 2000 -rap -profile dashavc264:onDemand -out dash / fball_dash.mpd fball_30fps.mp4 fball_60fps.mp4 fball_15fps.mp4 fball_5fps.mp4 fball_audio.mp4

  • 0

    在MPEG-DASH中,可以使用具有不同帧速率的表示 . 我认为这不是解码错误的原因 . DASH.js和其他基于HTML5 / JS的播放器正在利用底层浏览器的MSE进行解码 . 因此,您的编码段很可能不符合浏览器解码引擎的要求或已损坏 .

    关于如何使用MP4Box和x264生成MPEG-DASH内容的示例可以在here找到 . 在这种情况下还有一些在线服务,如BitmovinWowza .

相关问题