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

时间:2015-12-17 07:47:08

标签: android video streaming h.264 mediamuxer

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

我正在开发一款Android应用,可将收到的h.264流式视频/音频帧保存到剪辑中。我遇到了一个提到here,“缺少编解码器特定数据”的问题。

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

  1. 分配预定义的编解码器特定数据 我从this post借用它,它的工作非常完美 - 但仅限于我的个人手机(Sony Xperia Z3,Android 5.1.1)。大多数测试设备只是粉碎。(Android 4.3 / 4.4)。
  2. 从视频流本身解析编解码器特定数据 在我的手机上,它粉碎了。但不知何故在某些设备上工作。 我以this code为例。
  3. 创建编码器以对接收的视频帧进行编码,然后将其传递给MediaMuxer 是的,这是一个愚蠢的想法,它不起作用。
  4. 创建解码器以解码接收的视频帧,将它们传递给编码器,然后将编码的帧传递给MediaMuxer,保存。
    应用程序无法从编码器获取任何空闲缓冲区。死锁。
  5. 现在我的想法已经不多了。

    我最后的希望是使用ffmpeg 但我发现的资源是对视频文件中的视频进行编码/解码,而不是来自流 有什么建议吗?

    提前致谢。 :)

1 个答案:

答案 0 :(得分:0)

经过一周的尝试,包括周末学习h.264规格以及更多。

我发现问题不在于视频。

这是导致应用粉碎的音频。


结案,感谢收看。 :\