2016-05-07 21 views
1

In meiner Situation generiert iOS HW-Encoder manchmal ein Nalu und andere Male generiert zwei Nalus, die die Access-Unit/Bild bilden. Wenn zwei Nalus für ein Bild erzeugt wurden, kombiniere ich sie zwei, indem ich den Startcode des ersten Nalu durch die Größe der Gesamtgröße dieser beiden Nalus ersetze und den Startcode des zweiten Nalu entferne und ihn an das Ende des ersten Nalu anhefte. Genau so werden 0x00000002aaaa und 0x00000002bbbb zu 0x00000004aaaabbbb. Aber das Video wird unscharf auf dem Bildschirm angezeigt. Kann mir jemand also beibringen, Nalus richtig zu kombinieren? Vielen Dank.Wie kombiniere ich Nalus von einem Frame zu einem Nalu?

Zwei Nalus für einen Rahmen wie folgt aus (fast genauso wie Daten von diesem Link (https://forums.developer.apple.com/thread/14212?sr=stream), so dass ich kopieren Sie es einfach): enter image description here

Hier möchte ich 2 # 1 und # kombinieren.

Antwort

2

Jede NALU benötigt eine Größe, die nicht verkettet werden kann.

Sie müssen 00000002aaaa00000002bbbb

+0

Dank für Ihre Antwort tun. Es scheint, dass ffmpeg zwei Nalus nebeneinander legt wie 0x00 00 00 01 aa aa, 0x00 00 01 bb bb zusammen aus einem AVPacket werden. Hier muss ich das alleine machen. – fernandowei

+0

Nur für Anhang b. Mischen Sie nicht AvcC und Anhang b. – szatmary

+0

Lesen Sie dies. http://StackOverflow.com/q/24884827/210785 – szatmary