使用编码流缓冲区实时进行MPEG-DASH流传输

时间:2018-08-13 14:27:57

标签: http-live-streaming mpeg-dash mpeg2-ts mpeg-4

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

提供:

  • 我在缓冲输入中有音频和视频编码流。
  • 上面的直接mpeg-2传输流在缓冲区中也可用。

当前方法:

  1. 将传输流保存到固定长度的块中。
  2. 使用ffmpeg提取视频流。
    ffmpeg -i latest_chunk.ts -s 720x480 -c:v libx264 -b:v 600k -y -an output_video_stream.mp4
  3. 使用ffmpeg提取视频流。
        ffmpeg -i latest_chunk.ts -c:a aac -b:a 128k -y -vn output_audio_stream.mp4
  4. 使用mp4box创建破折号片段和mpd。
        mp4box -dash 7000 -profile live output_video_stream.mp4 output_audio_stream.mp4 -out manifest.mpd
  5. 在另一个线程中连续运行的服务器为生成的mpd和段提供服务。

问题:

  • 以上方法给出了大量的延迟。能更有效地做到这一点吗?
  • 我想知道是否有一种方法将直接编码的流缓冲区作为输入并生成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编码的媒体流?

任何建议/解决方案/参考的赞赏。

0 个答案:

没有答案