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 [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
