<p>On Feb 19, 2012 11:27 PM, "Pavel Sokolov" <<a href="mailto:pavel@sokolov.me">pavel@sokolov.me</a>> wrote:<br>
><br>
> 19.02.2012 15:35, Alex Cohn ÐÉÛÅÔ:<br>
><br>
>> Please have a look at mpegts_write_packet() public function in the<br>
>> same c file. You notice that it accepts h264 packets in annex B format<br>
>> only:<br>
><br>
> Alex, thank you, now all works fine with the two steps:<br>
><br>
> 1. Adding 'h264_mp4toannexb' bitstream filter processing after each call of the av_read_frame<br>
> 2. Adding the next code from mpegtsenc.c after bitstream filter:<br>
><br>
> š š š šdo {<br>
> š š š š š šp = avpriv_mpv_find_start_code(p, buf_end, &state);<br>
> š š š š š š//av_log(s, AV_LOG_INFO, "nal %d\n", state & 0x1f);<br>
> š š š š} while (p < buf_end && (state & 0x1f) != 9 &&<br>
> š š š š š š š š (state & 0x1f) != 5 && (state & 0x1f) != 1);<br>
><br>
> š š š šif ((state & 0x1f) != 9) { // AUD NAL<br>
> š š š š š šdata = av_malloc(pkt->size+6);<br>
> š š š š š šif (!data)<br>
> š š š š š š š šreturn -1;<br>
> š š š š š šmemcpy(data+6, pkt->data, pkt->size);<br>
> š š š š š šAV_WB32(data, 0x00000001);<br>
> š š š š š šdata[4] = 0x09;<br>
> š š š š š šdata[5] = 0xf0; // any slice type (0xe) + rbsp stop one bit<br>
> š š š š š šbuf š= data;<br>
> š š š š š šsize = pkt->size+6;<br>
> š š š š}<br>
><br>
><br>
><br>
> -- <br>
><br>
> With best regards, Pavel A. Sokolov<br>
> mobile: +7(921)419-1819<br>
> skype: pavel_a_sokolov</p>
<p>õÒÁ!<br>
</p>