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

Reply via email to