2016-03-28 6 views
0

Ich lese Daten vom Server im h264-Format, schreibt es erfolgreich in einer .h264-Datei, wenn wir UINT8 u8NAL[4] = {0x00, 0x00, 0x00, 0x01}; einschließen. aber wenn wir kommentieren //UINT8 u8NAL[4] = {0x00, 0x00, 0x00, 0x01}; .h264 Datei speichern Daten, aber wir können nicht sehen, Daten auf Vlc oder Qt.Warum müssen wir zuerst U8NAL in .h264-Datei vor dem Schreiben von Stream-Daten schreiben

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 spec und seine Anhang B haben die Antwort. Es ist kostenlos herunterzuladen. –

Antwort

0

0 0 0 1 sein ein Kopfteil eines h264 Rahmen, so kurz Spieler wissen kann, wo ich anfangen und wo sie aufhören, das ist, wie wir diese Hex-Daten zu jedem Startpunkt geben haben, Rahmen.

Und ya es ist nur erforderlich, wenn Sie Daten speichern, sonst können Sie den Player direkten Rahmen geben.

Verwandte Themen