2016-03-28 1 views
0

Я читаю данные с сервера в формате h264, он записывается успешно в файл .h264, когда мы включаем UINT8 u8NAL[4] = {0x00, 0x00, 0x00, 0x01};. , но когда мы комментируем //UINT8 u8NAL[4] = {0x00, 0x00, 0x00, 0x01}; .h264 данные файла хранения данных, но мы не можем видеть данные по Vlc или Qt.Зачем нам сначала писать файл u8NAL в файл .h264 перед записью данных потока

UINT8 u8NAL[4] = {0x00, 0x00, 0x00, 0x01}; 
     char name1[100], name2[100]; 
     _snprintf(name1, 99, "D:\\sizeH264_%p.txt", threadArgs->clientHandle); 
     _snprintf(name2, 99, "D:\\dataH264_%p.h264", threadArgs->clientHandle); 

    fp = fopen(name1, "w"); 
    fpFrames = fopen(name2, "wb"); 

     fwrite(u8NAL, 4, 1, fpFrames); 
     fwrite(threadArgs->tmpStreamParams->spsData, threadArgs->tmpStreamParams->spsDataSize, 1, fpFrames); 
+0

Спецификация H.264 и приложение B к нему имеют ответ. Это бесплатно для загрузки. –

ответ

0

0 0 0 1 сво заголовок часть h264 кадра, так что в короткий игрок может знать, где я должен начать и где остановиться, это способ, которым мы должны дать это шестигранные данные для каждой исходной точки Рамка.

И ya его требуется только при хранении данных, в противном случае вы можете дать прямой кадр игроку.

Смежные вопросы