Dear zhivago, you can try to set pkt1.pts = 0, and the ffmpeg will calculate for this packet.
Regards, Eric Hsieh, 09/17 2011/9/17 zhivago <[email protected]> > Help me please properly set the timestamps. I have created an output > filter, > which takes video (MEDIASUBTAYPE_H264) and audio (MEDIASUBTAYPE_AAC). I > have > to put it all into a container FLV. To mix the streams, I use libav. How to > calculate for AVPacket presentation timestamp (pts). > > static const REFERENCE_TIME UNITS_PER_SECOND = 10000000i64; > .... > REFERENCE_TIME startTime = m_lastSampleTime.startTime; > > AVPacket pkt; > av_init_packet( &pkt ); > pkt.data = pbData; > pkt.size = lDataLength; > pkt.flags |= AV_PKT_FLAG_KEY; > > if ( video ) > { > ASSERT( m_codecContextVideo ); > > num = m_codecContextVideo->time_base.num; > den = m_codecContextVideo->time_base.den; > > pkt1.pts ??? // = ::MulDiv( startTime * den, 1, num * > UNITS_PER_SECOND ); > pkt1.stream_index = m_streamVideoOutput->index; > } > else > { > ASSERT( m_codecContextAudio ); > > num = m_codecContextAudio->time_base.num; > den = m_codecContextAudio->time_base.den; > > pkt1.pts ??? // = ::MulDiv( startTime * den, 1, num * > UNITS_PER_SECOND ); > pkt1.stream_index = m_streamAudioOutput->index; > } > > ASSERT( m_formatContextOutput ); > > if ( AllConnected() ) > { > > av_interleaved_write_frame( m_formatContextOutput, &pkt1 ); > } > else > { > av_write_frame( m_formatContextOutput, &pkt1 ); > } > > -- > View this message in context: > http://libav-users.943685.n4.nabble.com/Timestamps-for-AVPaket-tp3818534p3818534.html > Sent from the libav-users mailing list archive at Nabble.com. > _______________________________________________ > Libav-user mailing list > [email protected] > http://ffmpeg.org/mailman/listinfo/libav-user >
_______________________________________________ Libav-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/libav-user
