qt faststart和ffmpeg生成实时mp4文件

时间:2014-02-26 21:43:43

标签: linux ffmpeg streaming video-streaming qt-faststart

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

故事的要点:我想继续为我的mp4容器提供我的相机输入,并且仍然能够播放我的客户可以观看的文件。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

您可以发布实时流,并在流结束时发布渐进式下载。

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

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

更新:您可以尝试直接stream a fragmented mp4

更新2:

  • 创建一个支离破碎的mp4:

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