[libav-tools] avconv fails to generate PTS information for H264
sampsa.riikonen at iki.fi
Fri Mar 13 21:47:01 CET 2015
I am generating H264 stream from still images like this:
avconv -y -r 25 -i dummy_%d.tif dummy.h264
When trying to multiplex that to matroska with
avconv -i dummy.h264 -c:v copy dummy.mkv
I get the following error:
[matroska @ 0x8c1860] Can't write packet with unknown timestamp
av_interleaved_write_frame(): Invalid argument
So, avconv did not generate timestamps for the frames, and as matroska
needs them to do its indexing, the multiplexing fails, right?
Stock video players go similarly mad when they try to produce the stream:
No pts value from demuxer to use for frame!
Video pts after filters MISSING
V: ??? 0/ 0 ??% ??% ??,?% 0 0
No video PTS! Making something up.
V: 00:00:00 / 00:00:00 (77%)
Now, if I do:
avconv -i dummy.h264 dummy.mkv
That actually works, but the raw H264 stream inside the matroska
container is still missing the PTS information..! One can confirm this
with "avconv -i dummy.mkv test.h264", etc.
For the specific project I am doing I need raw H264 stream with correct
PTS information. How on earth can I achieve this!?
I am also dealing with videos, recorded from IP cams that frequently
have missing/erroneous PTS information, so I should be able to correct
their PTS's before placing them to the matroska container - otherwise
the multiplexing fails, i.e. the problem is identical to the one
described here for the video generation from still images.
So far I have tried for video generation:
avconv -y -fflags +genpts -r 25 -i offline_%d.tif dummy.h264
avconv -y -fflags genpts -r 25 -i offline_%d.tif -fflags genpts dummy.h264
And for multiplexing:
avconv -y -r 25 -i dummy.h264 -r 25 -fflags genpts -filter:v
avconv -fflags +genpts -i dummy.h264 -c:v copy dummy.mkv
avconv -y -r 25 -fflags +genpts -i dummy.h264 -c:v copy dummy.mkv
.. and many more permutations.
Nothing works! .. it starts to seem like a bug to me. I am running
avconv 9.16-6:9.16 on Ubuntu 14.04.
More information about the libav-tools