我一直在尝试使用mpeg-dash实现HTTP实时流式传输,但需要在某些问题上提供指导 .

Provided :

  • 我在缓冲输入中有音频和视频编码流 .

  • 上面的直接mpeg-2传输流也可以在缓冲区中使用 .

Current approach :

  • 将传输流保存为固定长度的块 .

  • 使用ffmpeg提取视频流 .
    ffmpeg -i latest_chunk.ts -s 720x480 -c:v libx264 -b:v 600k -y -an output_video_stream.mp4

  • 使用ffmpeg提取视频流 .
    ffmpeg -i latest_chunk.ts -c:a aac -b:a 128k -y -vn output_audio_stream.mp4

  • 使用mp4box创建短划线段和mpd .
    mp4box -dash 7000 -profile live output_video_stream.mp4 output_audio_stream.mp4 -out manifest.mpd

  • 在另一个线程中连续运行的服务器为生成的mpd和段提供服务 .

Issues :

  • 上述方法给出了相当多的延迟 . 这可以更有效地完成吗?

  • 我想知道是否有一种方法可以将直接编码的流缓冲区作为输入并生成mpeg-dash段和mpd . HTTP服务器将完成剩下的工作 . 如果有,请提供一个例子 .

  • 此外,我在mp4box中提供了传输流块的长度(以秒为单位)作为参数 -mpd-refresh 12 ,但是播放器仅请求mpd一次,播放片段并停止 . 它还在生成的mpd文件中不包含minimumUpdatePeriod属性
    mp4box -dash 7000 -profile live -mpd-refresh 12 output_video_stream.mp4 output_audio_stream.mp4 -out manifest.mpd

  • mpeg-dash是否支持mpeg-2编码的媒体流?

任何建议/解决方案/参考是值得赞赏的 .