【问题标题】:Transcoding and Streaming a video file for Android为 Android 转码和流式传输视频文件
【发布时间】:2013-08-03 02:22:28
【问题描述】:

我正在尝试将本地/静态输入文件(例如 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。

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

谢谢

【问题讨论】:

    标签: android ffmpeg video-streaming mp4 video-encoding


    【解决方案1】:

    你可以在ffmpeg中指定多个输出,看这里http://trac.ffmpeg.org/wiki/Creating%20multiple%20outputs

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

    【讨论】:

    • 为什么我需要多个输出?顺便说一句,HLS Android 支持的唯一类型是 MPEG-TS,但这会使整个视频无法搜索...
    猜你喜欢
    • 1970-01-01
    • 2010-10-25
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 2015-08-22
    相关资源
    最近更新 更多