converting a video with corrupted chapter times

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
bbb
Reply | Threaded
Open this post in threaded view
|

converting a video with corrupted chapter times

bbb
Hi,

I had a video that I wanted to convert using this command:
> ffmpeg -i INPUT.mkv -c:v libx264 -c:a ac3 -map 0 OUTPUT.mkv

But I always got the following error:
> Could not write header for output file #0 (incorrect codec parameters
> ?): Invalid data found when processing input

Reason was, that the start-time and end-time of a chapter was mixed up.
It was possible to convert the video with option -map_chapters -1, but I
wanted to preserve the chapters.

I've extracted the metadata using this:
> ffmpeg -i INPUT.mkv -f ffmetadata METADATAFILE

I've fixed the chapter times in the metadata file and tried this:
> ffmpeg -i INPUT.mkv -i METADATAFILE -map_metadata 1 -c:v libx264 -c:a
> ac3 -map 0 OUTPUT.mkv

I got the same error as before. The chapter information from input file
#1 was listed correctly though. I've even tried it this way like in the
example from the documentation:
> ffmpeg -i INPUT.mkv -i METADATAFILE -map_metadata 1 -codec copy
> OUTPUT.mkv

That didn't work either. In the end I had to create a temp file without
the corrupt metadata like this:
> ffmpeg -i INPUT.mkv -map_chapters -1 -map 0 TEMP.mkv

After that I was able to join the fixed metadata I've prepared with this
command:
> ffmpeg -i TEMP.mkv -i METADATAFILE -map_metadata 1 -c:v libx264 -c:a
> ac3 -map 0 OUTPUT.mkv


I'm glad it worked but I can't help wondering if there would have been
an easier way to do it.


Is it possible to fix the chapter time automatically when start-time and
end-time are mixed up?
Is it possible to make ffmpeg completely ignore the corrupt metadata of
input file #0 and just override it with metadata from file #1?
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".