quietvoid / dovi_tool

dovi_tool is a CLI tool combining multiple utilities for working with Dolby Vision.
MIT License
623 stars 59 forks source link

"Out of bounds" error extracing from "The Fate of the Furious (2017)" STDL hevc file #32

Closed NZDivinity closed 3 years ago

NZDivinity commented 3 years ago

Hi again,

I've attempted to extract Dovi data from an STDL hevc file this time, unlike with my last attempt of extracting directly from the EL which I wasn't aware wasn't supported - apologies.

However, unfortunately I've received the exact same error as before :/

Workflow : Demux source m2ts to BL.hevc and EL.hevc using ffmpeg -i "K:\00234.m2ts" -map 0:0 -vcodec copy "K:\BL.hevc" -map 0:1 -vcodec copy "K:\EL.hevc"

Mux to STDL hevc using Yusescopes tool (v0.0.4_BETA_TEST_FEL_TO_MEL_PLUS_UHDBD_TO_81PLUS_SKIP_HDR10plusPLUS_EXPERIM_MUXER_17102020) default mode

Attempt extraction(& Conversion) of Dovi data using Dovi_Tool Ver 0.3.5 dovi_tool -m 1 extract-rpu "K:\BL_FEL_RPU.hevc" --rpu-out "K:\RPUMEL.bin"

Errors out with "thread 'main' panicked at 'Range 7..13 out of bounds: 8', C:\Users\runneradmin.cargo\registry\src\github.com-1ecc6299db9ec823\bitvec-0.20.2\src\slice\api.rs:2651:1"

Please let me know if my workflow is botched. Thanks.

quietvoid commented 3 years ago

Gonna look into it.

quietvoid commented 3 years ago

I had no problem when using a MakeMKV remuxed file of the disc. No problem with a mkvextract demuxed video from said mkv.

When demuxing with ffmpeg -i 00234.m2ts -map 0:0 -c copy bl.hevc -map 0:1 -c copy el.hevc, and muxing back with yusesope's script, then the error happens at the end of the HEVC parsing.

For now I would just recommend using MakeMKV all the time. Will try to see if it's an actual bug or just an invalid file.

quietvoid commented 3 years ago

This should be fixed with https://github.com/quietvoid/dovi_tool/commit/f4bc7c802318daa0b8a7314ed4a778457fac35f9 I'm not making a new release just yet though.

quietvoid commented 3 years ago

You can try a binary when they're done building: https://github.com/quietvoid/dovi_tool/actions/runs/1095362039

NZDivinity commented 3 years ago

That was quick!

I've just tried the binary and its worked perfectly for The Fate of the Furious, Hitmans Bodyguard(2017) and Warm Bodies(2013), all of which gave the same error prior with 0.3.5.

Unrelated question, but what is incorrect with piping the m2ts to dovi_tool to extract data? eg ffmpeg -i 00193.m2ts -map 0:1 -c:v copy -an -vbsf hevc_mp4toannexb -f hevc - | dovi_tool -m 1 extract-rpu - --rpu-out RPUMEL.bin For Hitmans bodyguard, Fate of the furious and Warm Bodies the output is bit-bit identical as to extracting from STDL hevc(from yusescopes tool)

Anyway, thanks for the quick fix :)

quietvoid commented 3 years ago

I'm not sure now. In the past it would error while parsing the HEVC, but apparently it works. So no more issue when extracting the RPU from an EL file, I guess.