使用ffmpeg libx264为android编码RGB565原始数据

时间:2014-01-09 14:08:45

标签: android encoding ffmpeg stagefright openmax

我有关于Android实现的以下问题

  1. 各种视频编解码器的区别,特别是“基于流的,基于帧的”

  2. 在很多论坛和问题中,每个人都在谈论SPS,PPS等,所以在哪里可以找到有关编解码器的详细信息(请提及RFC文档以外的其他内容!!)来理解它并相关地使用ffmpeg?

  3. 来自this是否有可能使用内置的HW解码器和Android设备?如果是这样,怎么样?我是否需要使用OpenMax-IL(或AL或DL,我的意思是哪个用于什么?)

  4. ffmpeg是否支持通过libx264对RGB(或RGBA)或RGB565(或RGB555)输入数据进行H264编码?

  5. 如果我的要求只是h264编码&解码,我可以在不使用ffmpeg的情况下使用libx264吗?如果是这样的任何样本/指南?

1 个答案:

答案 0 :(得分:2)

1)这可能是指基本流格式。一些编解码器,如mp3,产生一个“流”,它不需要(但可选地仍然可以包含在单独的容器中)(例如mp4)。其他编解码器需要一个单独的容器。 AVC同时做到了。 AVCC格式需要一个容器(以及包含SPS / PPS的序列头)。虽然附件B格式不需要容器。点击此处:http://www.szatmary.org/blog/25

2)SPS和PPS基本上是标题。它们包含h.264解码器需要初始化的信息(如压缩选项和视频分辨率)

3)这取决于设备,但是。你可以使用解码器。请参考Android文档。

4)h.264需要YUV420p(或在极端情况下为YUV444)。 ffmpeg可以在将数据传递给x264之前进行颜色空间转换。

5)libx264无法解码,也无法进行RGB-> YUV色彩空间转换。