Я читаю данные с сервера в формате 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);
Спецификация H.264 и приложение B к нему имеют ответ. Это бесплатно для загрузки. –