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

标签 video ffmpeg mpeg-dash mp4box

我将 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:a 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

  1. 片段时长:2 秒

  2. GOP 长度:片段时长 x 视频 FPS

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

结果是视频解码错误或切换帧率时停顿。

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

最佳答案

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

关于video - 是否可以使用 MPEG-DASH 流式传输多帧率视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35723935/

相关文章:

python - 读取视频文件时 OpenCV 内存不足

java - 如何在 Processing 中从网络摄像头捕获带音频的视频

javascript - 结合 2 个 YouTube API?

windows - 如何使用ffmpeg一次记录两个窗口?

使用 filter_complex 修剪后 Ffmpeg 音轨丢失

networking - FFMPEG 经常报告网络连接的 EOF,为什么?

android - 如何从YouTube视频获取flv网址

YouTube Nerd 统计数据 : What does the (137/140) behind "DASH: yes" stand for?

javascript - 我怎样才能知道视频的质量以及如何更改它?

ffmpeg - MPEG-DASH 和分段 mp4