Hi, guys
Anyone takes APIs from avformat lib to write H.264 frames into MP4 file? I
am doing this and copied the following code snipset from somewhere.
"
m_pVideoStream->pts.val = m_nProcessedFramesNum;
pkt.pts = av_rescale_q(m_pVideoStream->pts.val, c->time_base,
m_pVideoStream->time_base);
pkt.data = pData;
pkt.size = uDataLen;
// Write the compressed frame in the media file
av_interleaved_write_frame(m_pFormatCtx, &pkt)
"
But indeed, I do not understand why I have to convert the video frame's
sequence number, m_nProcessedFramesNum, to AVPacket's PTS with the formula,
av_rescale_q(m_pVideoStream->pts.val, c->time_base, m_pVideoStream->time_base);
in above, c is AVCodecContext of the video stream (m_pVideoStream). And the
most wired thing to me is that c->time_base and m_pVideoStream->time_base have
different values, say, c->time_base is {1,30 }, but m_pVideoStream->time_base
takes {1, 15360 }. So much the gap is!
If I directly set pts to m_nProcessedFramesNum, the outcome MP4 file would be
decoded and presented extremely faster than expected. What hell is the reason?
Could anyone please help me to explain this?_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user