PDA

View Full Version : ffmpeg "pts < dts" error



Decoyd
06-02-2011, 03:52 PM
I've been having problems transcoding mkv files to play on a sony bdp-s570 bluray player. When I look at my log file, I get:


1 - May 22 14:07:05.801 - TRANS> Input file: E:\Videos\30 Rock\Season 1\30 Rock S01E01 Pilot h264.mkv

2 - May 22 14:07:05.802 - > Transcoder: Executing: C:\Program Files\ffmpeg\bin\ffmpeg.exe -i "E:\Videos\30ROCK~1\SEASON~1\30A828~1.MKV" -y -vcodec copy -vf "scale=1280:720" -acodec copy -sn -f mpegts -threads 4 -pix_fmt yuv420p -copyinkf -coder 1 -flags +loop -fflags +genpts -cmp +chroma -me_method hex -subq 7 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -directpred 1 -flags2 +fastpskip+bpyramid+mixed_refs-dct8x8+wpred+aud+ivlc+mbtree -partitions -parti8x8-parti4x4-partp8x8-partp4x4-partb8x8 -crf 22 -bf 1 -refs 2 -bidir_refine 1 -deblockalpha 0 -deblockbeta 0 -vbsf h264_mp4toannexb "D:\Mezzmo Transcode\E216B4C7-3D2A-4ed7-BDC1-C72050BBC3CA\Video\1391-mpegts_transcoding-libx264-ac3.mzt"

3 - May 22 14:07:05.802 - > Ffmpeg --------------------------------------------------------------------

4 - May 22 14:07:05.804 - > Looks like transcoding started ok, let's wait for the actual file a bit...

5 - May 22 14:07:05.804 - > Waiting for transcoding to appear on disk...

6 - May 22 14:07:05.837 - ffmpeg version git-N-30011-gb4bcd1e, Copyright (c) 2000-2011 the FFmpeg developers

built on May 18 2011 04:49:49 with gcc 4.5.3

configuration: --enable-gpl --enable-version3 --enable-memalign-hack --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib --pkg-config=pkg-config

libavutil 51. 2. 1 / 51. 2. 1

libavcodec 53. 6. 0 / 53. 6. 0

libavformat 53. 1. 0 / 53. 1. 0

libavdevice 53. 0. 0 / 53. 0. 0

libavfilter 2. 5. 0 / 2. 5. 0

libswscale 0. 14. 0 / 0. 14. 0

libpostproc 51. 2. 0 / 51. 2. 0

[matroska,webm @ 00000000018BC000] Estimating duration from bitrate, this may be inaccurate

Input #0, matroska,webm, from 'E:\Videos\30ROCK~1\SEASON~1\30A828~1.MKV':

Duration: 00:22:02.36, start: 0.000000, bitrate: 384 kb/s

Stream #0.0(eng): Video: h264 (High), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)

Stream #0.1(eng): Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s

[mpegts @ 00000000029F00C0] muxrate VBR, pcr every 2 pkts, sdt every 200, pat/pmt every 40 pkts

Output #0, mpegts, to 'D:\Mezzmo Transcode\E216B4C7-3D2A-4ed7-BDC1-C72050BBC3CA\Video\1391-mpegts_transcoding-libx264-ac3.mzt':

Metadata:

encoder : Lavf53.1.0

Stream #0.0(eng): Video: libx264, yuv420p, 1280x720 [PAR 1:1 DAR 16:9], q=2-31, 90k tbn, 23.98 tbc (default)

Stream #0.1(eng): Audio: ac3, 48000 Hz, 5.1, 384 kb/s

Stream mapping:

Stream #0.0 -> #0.0

Stream #0.1 -> #0.1

Press [q] to stop, [?] for help

[mpegts @ 00000000029F00C0] pts < dts in stream 0

av_interleaved_write_frame(): Invalid argument

8 - May 22 14:07:05.837 -

<MEZZMO>: Child process ended

9 - May 22 14:07:06.004 - > Transcoded file is ok, size is 7520 bytes

10 - May 22 14:07:06.119 - > Transcoder: GetAudioVideoFileName: D:\Mezzmo Transcode\E216B4C7-3D2A-4ed7-BDC1-C72050BBC3CA\Video\1391-mpegts_transcoding-libx264-ac3.mzt ALREADY EXISTS!

11 - May 22 14:07:06.430 - > Transcoder: GetAudioVideoFileName: D:\Mezzmo Transcode\E216B4C7-3D2A-4ed7-BDC1-C72050BBC3CA\Video\1391-mpegts_transcoding-libx264-ac3.mzt ALREADY EXISTS!

12 - May 22 14:07:06.439 - > Transcoder: GetAudioVideoFileName: D:\Mezzmo Transcode\E216B4C7-3D2A-4ed7-BDC1-C72050BBC3CA\Video\1391-mpegts_transcoding-libx264-ac3.mzt ALREADY EXISTS!

13 - May 22 14:07:06.550 - > Transcoder: GetAudioVideoFileName: D:\Mezzmo Transcode\E216B4C7-3D2A-4ed7-BDC1-C72050BBC3CA\Video\1391-mpegts_transcoding-libx264-ac3.mzt ALREADY EXISTS!

14 - May 22 14:07:06.867 - > Transcoder: GetAudioVideoFileName: D:\Mezzmo Transcode\E216B4C7-3D2A-4ed7-BDC1-C72050BBC3CA\Video\1391-mpegts_transcoding-libx264-ac3.mzt ALREADY EXISTS!


I've done a bunch of reading, and it seems that ffmpeg has trouble with certain streams, particularly ones using B-frames, that don't keep the frames in order (so the decode and presentation time stamps are different). In my case, if I use the "-vcodec libx264" instead of "-vcodec copy" on the command line, ffmpeg can handle the video properly. Is there any way to alter the profile (SonyBDP-NTSC or SonyBDP-NTSC-NoDivX) so that it will do this?

Paul
06-02-2011, 03:56 PM
Yes, you could specify forcecodec="1" in the <format> like this (in relevant <avcontainer>):


<format id="h264" encode="1" codec="libx264" preferredtranscoded="1" forcecodec="1">

That'll stop remuxing ("copy") and will always transcode it fully.

On a side note, would it be possible for you to send that file to us here for testing with our internal builds of FFmpeg (via www.megaupload.com or any other similar site)?

Decoyd
06-07-2011, 07:01 AM
That worked perfectly. Thank you.