mozilla / mp4parse-rust

Parser for ISO Base Media Format aka video/mp4 written in Rust.
Mozilla Public License 2.0
404 stars 62 forks source link

MP4 Containers created by MP4Box fail to parse having 'meta' atom set #414

Open jotzet79 opened 10 months ago

jotzet79 commented 10 months ago

Hello there,

I have issues when I'm trying to convert Original Sony ILCE-7M4 movies to HEVC with a lower bitrate, and adding a META box / atom via MP4Box. I do the following steps:

First I CONVert the ORIGinal File ffmpeg -i "${ORIGFILE}" -preset faster -c:v libx265 -crf 17 -c:a aac_at -b:a 192k -movflags use_metadata_tags+faststart -map_metadata 0 -tag:v hvc1 "${CONVFILE}"

Then I add a meta box to a new PROCessed file (previously I added XML data to the meta, but this does not make any difference) MP4Box -add "${CONVFILE}#1" -add "${CONVFILE}#2" -set-meta meta:tk=1 -new "${PROCFILE}"

When I then try to parse the file via mp4parse::read_mp4(&mut file).unwrap() I get thread 'main' panicked at 'calledResult::unwrap()on anErrvalue: InvalidData(CheckParserStateErr)'

Can you please have a look at this? In the gpac area I already tried to investigate what happens, but I have to confess that I'm not an expert obviously ;). -> https://github.com/gpac/gpac/issues/2603

Thank you very much, Joachim