In this mode
pAVFrame->pts= Frames;
//pCodecCtx->coded_frame->pts=
Frames;
//qDebug() <<
pCodecCtx->coded_frame->pts << pAVFrame->pkt_dts;
int OutSize=
avcodec_encode_video(pCodecCtx, pOutBuffer, BYTEPIC, pAVFrame);
if (OutSize> 0) {
AVPacket Packet;
av_init_packet(&Packet);
if
(pCodecCtx->coded_frame->pts != AV_NOPTS_VALUE) {
Packet.pts=
av_rescale_q(pCodecCtx->coded_frame->pts, pCodecCtx->time_base,
pVideoStream->time_base);
}
if
(pCodecCtx->coded_frame->key_frame) Packet.flags |= AV_PKT_FLAG_KEY;
Packet.stream_index=
pVideoStream->index;
Packet.data= pOutBuffer;
Packet.size= OutSize;
if
(av_interleaved_write_frame(pFormatCtx, &Packet)!= 0) qDebug() <<
"av_interleaved_write_frame Error!";
}
Frames++;
I insert a packet in the video stream. When I try to play the produced file I
obtain this error:
PachetCount: 1 , 32768 bytes, pBufferSize: 32768
[mpegts @ 0x8eca320] Invalid timestamps stream=0, pts=0, dts=8589927392,
size=1186
[mpegts @ 0x8eca320] Invalid timestamps stream=0, pts=14400, dts=8589930992,
size=21
[mpegts @ 0x8eca320] max_analyze_duration 5000000 reached at 5000000
[mpegts @ 0x8eca320] Estimating duration from bitrate, this may be inaccurate
dump_format begin
Input #0, mpegts, from 'foo.mpg':
Duration: N/A, start: 0.000000, bitrate: N/A
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0.0[0x100]: Video: h264 (High), yuv420p, 320x240, 25 fps, 25 tbr,
90k tbn, 50 tbc
dump_format end
0
"fps: 25"
This error appears only in CODEC_ID_H264 mode and not in CODEC_ID_MPEG4 mode.
Which is the right way for calculate the pts and dts value?
--
www.denisgottardello.it
Skype: mrdebug
Videosurveillance and home automation!
http://www.denisgottardello.it/DomusBoss/DomusBossIndice.php
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user