1

我正在使用 ffmpeg 在我的服务器上创建一个 mp4 文件。我也在尝试使用 qt 快速启动来将 moov 原子移动到前面,这样它就会流式传输。我没有运气在互联网上搜索过。是否可以将我的视频/音频放在 mp4 缓冲区类型文件中,然后能够在 ffmpeg 仍在将视频和音频数据转储到流中时播放它?关键是我正在尝试从相机流式传输,而 Android 是可怕的......我知道 ios 和 android 都支持 mp4,所以我试图想办法制作我的 rtsp Mp4。

故事的要点:我想不断地为我的 mp4 容器提供我的相机信息,并且仍然能够播放我的客户可以观看的文件。

感谢您的帮助。

4

1 回答 1

1

您可以发布直播,当直播结束时,您可以发布渐进式下载。

在 FFmpeg 中,要实时流式传输并将该流的副本同时保存到文件中而不进行两次编码,您可以使用 Tee 伪混音器。像这样的东西:

ffmpeg \
  -i <input-stream> \
  -f tee "[movflags=+faststart]output.mp4|http://<ffserver>/<feed_name>"

更新:您可能会尝试直接流式传输分段的 mp4

更新 2:

  • 创建一个碎片化的 mp4:

    ffmpeg -i input -frag_duration 1000 stream.mp4
    
  • 通常,当使用 Web 服务器提供文件时,它会想知道文件的大小,因此要在不知道文件大小的情况下提供文件,您需要将 Web 服务器配置为执行Chunked Transfer Encoding

于 2014-02-26T23:18:26.147 回答