我正在尝试将本地/静态输入文件(例如 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。
我很想听听关于这个问题的任何意见......
谢谢