在原始h264轨道中包含SPS和PPS

时间:2015-06-10 03:42:48

标签: h.264

原始h.264视频track是否应包含开始SPSPPS数据,以便播放器(至少VLC Player)能够正确播放?

在这个Android question中,我看到在MediaCodec API上的这个特定上下文中的Android解码器 - 据说需要提供两个缓冲区。这是概括的吗?我是否提供0,0,0,1,[sps],0,0,0,1,[pps]?

[编辑]

我已经按原样添加了SPS和PPS,现在VLC播放器想要播放视频。它似乎以良好的帧速率解码了适当数量的帧,尽管帧是粉红色和绿色噪声,其动作似乎遵循原始电影动作。我觉得有关我的视频轨道数据格式的信息丢失。当我使用FFmpeg解复用MP4时,原始h.264流开头提供的sps比我的更丰富。

FFMPEG h.264原始视频曲目流:

SPS 00 00 00 01 67 42 c0 0d 9a 74 03 c0 11 3f 2e 02 20 00 00 03 00 20 00 00 06 51 e2 85 54

PPS 00 00 00 01 68 ce 3c 80

剩下的...... 00 00 00 01 65等......

1 个答案:

答案 0 :(得分:0)

您使用哪个库来获取流?例如,如果您使用live555获取流,则需要在帧之前放置sps和pps信息,因为ffmpeg需要这些信息进行解码。

00 00 00 01 for h264 format

<00> 00 00 00 01 sps 00 00 00 01 pps 00 00 00 01数据框