DVD transcoding: "pts has no value"
Posted: Tue Nov 26, 2013 8:06 pm
[PROBLEM]
I'm trying to extract a certain range from a VOB file on a DVD for use in a news production.
The DVDs were recorded in-house, using a hardware DVD-recorder.
I've ripped the iso (using dvdisaster) and can play the videos without problems in VLC, mplayer, etc.
Now it should be easy, but it's not:
1) VLC does not offer to do a codec "copy". So I can't use it.
2) mencoder:
There are many error messages about duplicating frames, etc...
The resulting file is playing back jerky and A/V async.
3) Avidemux:
Avidemux segfaults and exists, upon trying to load the ISO.
[SOLUTION]
It seems that there's something wrong the with PTS in the original DVD's MPEG stream...
Thanks to a ticket by Dave Rice on FFmpeg's trac, that contained a solution:
I've mounted the iso and remuxed the desired VOB file using FFmpeg - and additional flags:
The resulting Matroska file works fine.
If you need an AVI container, you can do the following:
This transcodes the lossy-encoded audio track to uncompressed (PCM, stereo 16bits), in order to avoid issues with variable bitrate in AVI.
I'm trying to extract a certain range from a VOB file on a DVD for use in a news production.
The DVDs were recorded in-house, using a hardware DVD-recorder.
I've ripped the iso (using dvdisaster) and can play the videos without problems in VLC, mplayer, etc.
Now it should be easy, but it's not:
1) VLC does not offer to do a codec "copy". So I can't use it.
2) mencoder:
Code: Select all
$ mencoder -dvd-device "my_dvd.iso" dvd://0 -oac copy -ovc copy -o test.mkv
The resulting file is playing back jerky and A/V async.
3) Avidemux:
Avidemux segfaults and exists, upon trying to load the ISO.
[SOLUTION]
It seems that there's something wrong the with PTS in the original DVD's MPEG stream...
Thanks to a ticket by Dave Rice on FFmpeg's trac, that contained a solution:
I've mounted the iso and remuxed the desired VOB file using FFmpeg - and additional flags:
Code: Select all
$ ffmpeg -fflags +genpts -i input.vob -c copy output.mkv
If you need an AVI container, you can do the following:
Code: Select all
$ ffmpeg -fflags +genpts -i input.vob -c:v copy -c:a pcm_s16le output.avi