0

我正在尝试将本地/静态输入文件(例如 MP4)编码为较小的视频文件(通过调整大小、质量较差的视频等)并并行流式传输(即我等不及编码过程在流回之前完成),因此它可以由Android客户端(标准的 Android 视频播放器)播放。

所以我尝试使用 ffmpeg 如下:

ffmpeg -re -i input.mp4 -g 52 -acodec libvo_aacenc -ab 64k -vcodec libx264 -vb 448k -f mp4 -movflags frag_keyframe+empty_moov -

请注意,我使用 stdout 作为输出,因此我可以运行 ffmpeg 并即时流式传输其输出

但是,此类方法(和其他类似方法)似乎不适用于 Android - 一旦收到“非标准”文件(例如碎片化的 MP4),它就不能简单地播放它 - 似乎是空的 moov atom搞砸了。

我还尝试了其他容器格式,例如 3GPP 和 WebM。

我很想听听关于这个问题的任何意见......

谢谢

4

1 回答 1

1

您可以在 ffmpeg 中指定多个输出,请参见此处http://trac.ffmpeg.org/wiki/Creating%20multiple%20outputs

对于 Android,如果高于 3.0,请尝试 HLS 作为输出

于 2013-08-02T21:27:17.377 回答