在 Android 上使用 MediaMuxer 保存 h.264 流媒体视频

Saving h.264 streaming video using MediaMuxer on Android

(我的英语不是很好,但我会尽力的。)

我正在开发一个 Android 应用程序,可以将接收到的 h.264 流 video/audio 帧保存到剪辑中。我 运行 遇到了一个问题 here, "Missing codec specific data."

我尝试了一些方法来解决这个问题。

  1. 分配预定义的编解码器特定数据。
    我从 this post 那里借来的,它的工作出奇地完美 - 但仅限于我个人 phone(Sony Xperia Z3,Android 5.1.1)。大多数测试设备只是碾压。(Android 4.3/4.4).
  2. 正在从视频流本身解析编解码器特定数据。
    在我的 phone 上,它被压碎了。但不知何故适用于某些设备。 我以this code为例。
  3. 创建一个编码器来对接收到的视频帧进行编码,然后将它们传递给 MediaMuxer。
    是的,这是一个愚蠢的想法,它行不通。
  4. 创建一个解码器来解码接收到的视频帧,将它们传递给编码器,然后将编码后的帧传递给 MediaMuxer,保存它。
    应用无法从编码器获取任何空闲缓冲区。僵局。

现在我运行没主意了。

我最后的希望是使用 ffmpeg。
但是我找到的资源是 encode/decode 来自视频文件的视频,而不是来自流的视频。
有什么建议吗?

提前致谢。 :)

经过一周的试用,包括周末学习 h.264 规范等等。

我发现问题与视频无关。

是音频导致应用崩溃。


结案,感谢观看。 :\