相关疑难解决方法(0)

H.264流的序列/图像参数集的可能位置

我正在研究H.264解码器,我想知道在哪里可以找到SPS和PPS.我的参考文献告诉我那些是在H.264-Stream中编码的NAL单元,但是当我查看一个带有IsoViewer的示例-MP4-File时,它说SPS和PPS在avcC Box中.

这究竟是如何工作的?它如何查找.mkv文件或其他H.264容器?

提前致谢!

parameters mp4 set h.264 mkv

74
推荐指数
1
解决办法
5万
查看次数

Android MediaCodec 似乎可以缓冲 H264 帧

我正在手动读取 RTP/H264 流并将 H264 帧传递给 Android MediaCodec。我使用“markerBit”作为框架的边框。MediaCodec 与 OpenGL 纹理 (SurfaceTexture) 绑定。一般来说,一切正常。但解码器似乎缓冲帧。如果我将帧放入解码器中,它不会立即渲染到纹理。当我在解码器中添加 2-3 帧后,第一帧将渲染到纹理。

我正在针对 Android 4.4.4 实施。

private static final int INFINITE_TIMEOUT = -1;
private static final int TIMEOUT_OUTPUT_BUFFER_MEDIA_CODEC = 1000;
...
int bufferIndex = codec.dequeueInputBuffer(INFINITE_TIMEOUT);
if (bufferIndex < 0) {
  throw new RuntimeException("Error");
}

ByteBuffer inputBuffer = inputBuffers[bufferIndex];
inputBuffer.clear();

// Copy H264 data to inputBuffer
h264Frame.fill(inputBuffer);

codec.queueInputBuffer(bufferIndex, 0, inputBuffer.position(), 0, 0);
drainOutputBuffers();
...
Run Code Online (Sandbox Code Playgroud)

private boolean drainOutputBuffers() {
MediaCodec.BufferInfo buffInfo = new MediaCodec.BufferInfo();

int outputBufferIndex = codec.dequeueOutputBuffer(buffInfo, TIMEOUT_OUTPUT_BUFFER_MEDIA_CODEC); …
Run Code Online (Sandbox Code Playgroud)

android opengl-es h.264 android-mediacodec

5
推荐指数
1
解决办法
2957
查看次数

标签 统计

h.264 ×2

android ×1

android-mediacodec ×1

mkv ×1

mp4 ×1

opengl-es ×1

parameters ×1

set ×1