Comments (12)
For example:
ffmpeg -map 0:v:0 -c copy -f null - -i BL+FEL+RPU.hevc
gives number of frame 161618.
I'm not sure FFmpeg is accurate with this command line.
I have piped from a MakeMKV remux as well as demuxed the video, and the number of frames was always correct.
With your command, the number of frames is increased by 1.
FFmpeg also errored: [NULL @ 0x55660d526a40] missing picture in access unit with size 287
So both piping & demuxing with ffmpeg -i title_t00.mkv -c:v copy video.hevc
resulted in frame=189716
While your command results in frame=189717
, and is incorrect.
The RPU contains 189716 metadata frames, so that's correct.
And I can do dovi_tool info -i RPU.bin -f 189715
, which is fine because the -f
parameter starts at 0.
According to the video length, the correct number of frames is also 189716.
I still have to test demuxing into BL+EL and reinjecting, but I'm not really seeing any use case for this.
from dovi_tool.
The issue can be closed now. The problem is really in bad initial demux. Eac3to and MKVExtract break RPU data while demuxing, making it one frame less.
I reripped disc and demuxed with Ffmpeg - everything is ok
from dovi_tool.
Well the only other option is that the RPU has less "metadata" frames, or there's a bug with the HEVC parsing.
Can you reproduce it consistently? Would need a sample of the source at the very least, if encoding can be reproduced.
from dovi_tool.
I also encontered the same problem. I have tested two sources. Both behave similarly. (Use Makemkv latest version to make two layers MKV)
Note: As for source A, I also test a remux mkv from a famous group. The problem also remains.
The following is the procedure.
The command dovi_tool -c -m 2 extract-rpu BL+FEL+RPU.hevc
produces the RPU.bin. Further, I check the number of frames with command dovi_tool info -i RPU.bin -f INDEX_OF_FRAME
.
I found that the the number of frames from RPU is always one frame less than that of video file.
For example: ffmpeg -map 0:v:0 -c copy -f null - -i BL+FEL+RPU.hevc
gives number of frame 161618.
dovi_tool info -i RPU.bin -f 161616
is OK.
dovi_tool info -i RPU.bin -f 161617
will result in panick:
Parsing RPU file...
thread 'main' panicked at 'assertion failed: f < rpus.len()', src\dovi\rpu_info.rs:23:17
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Although it is possible the source video is unreliable, I just talk about my experience for a reference.
from dovi_tool.
I also encontered the same problem. I have tested two sources. Both behave similarly. (Use Makemkv latest version to make two layers MKV)
Note: As for source A, I also test a remux mkv from a famous group. The problem also remains.
The following is the procedure.
The commanddovi_tool -c -m 2 extract-rpu BL+FEL+RPU.hevc
produces the RPU.bin. Further, I check the number of frames with commanddovi_tool info -i RPU.bin -f INDEX_OF_FRAME
.
I found that the the number of frames from RPU is always one frame less than that of video file.
For example:ffmpeg -map 0:v:0 -c copy -f null - -i BL+FEL+RPU.hevc
gives number of frame 161618.
dovi_tool info -i RPU.bin -f 161616
is OK.
dovi_tool info -i RPU.bin -f 161617
will result in panick:Parsing RPU file... thread 'main' panicked at 'assertion failed: f < rpus.len()', src\dovi\rpu_info.rs:23:17 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Although it is possible the source video is unreliable, I just talk about my experience for a reference.
I checked my sources again and that is right - extracted RPU is always one frame less than that of video file.
And the problem definitely not in encode. If I extract RPU from source, demux source file to BL and EL-RPU, and then try to insert RPU back into the source BL file - I still get this error. Looks like the problem is in RPU parsing or injecting process.
from dovi_tool.
It's quite likely to be a one off problem, however it feels a little odd that you can use the RPU file with x265, which verifies the number of metadata frames against the frames encoded.
It wouldn't fail but it should be warning.
I'll try to reproduce with a full MakeMKV file, but it would be useful to test with the same title.
from dovi_tool.
It's quite likely to be a one off problem, however it feels a little odd that you can use the RPU file with x265, which verifies the number of metadata frames against the frames encoded.
It wouldn't fail but it should be warning.I'll try to reproduce with a full MakeMKV file, but it would be useful to test with the same title.
The source file is 50GB big - would be not so easy to upload to some file hosting
from dovi_tool.
@Vortexar I'm not asking for the file itself, just the title. I can buy it myself.
from dovi_tool.
Aquaman (2018)
from dovi_tool.
I did a dovi_tool inject-rpu -i BL.hevc --rpu_in RPU.bin
and it worked perfectly fine.
So I can't reproduce the issue here.
from dovi_tool.
For example:
ffmpeg -map 0:v:0 -c copy -f null - -i BL+FEL+RPU.hevc
gives number of frame 161618.I'm not sure FFmpeg is accurate with this command line.
I have piped from a MakeMKV remux as well as demuxed the video, and the number of frames was always correct.With your command, the number of frames is increased by 1.
FFmpeg also errored:[NULL @ 0x55660d526a40] missing picture in access unit with size 287
So both piping & demuxing with
ffmpeg -i title_t00.mkv -c:v copy video.hevc
resulted inframe=189716
While your command results inframe=189717
, and is incorrect.The RPU contains 189716 metadata frames, so that's correct.
And I can dodovi_tool info -i RPU.bin -f 189715
, which is fine because the-f
parameter starts at 0.
According to the video length, the correct number of frames is also 189716.I still have to test demuxing into BL+EL and reinjecting, but I'm not really seeing any use case for this.
THANKS. I found the problem is related to the way I demux the BL+FEL+RPU.mkv. I previously use gMKVExtractGUI. Currently, I will turn to ffmpeg.
BTW, the counting of number of frames is actually correct, but the BL+FEL+RPU.hevc by gMKVExtractGUI seems corrupt so that dovi_tool cannont extract a correct RPU.
from dovi_tool.
I just got around to testing inject-rpu
on a very quick Aquaman (2018) encode and it worked fine as well.
from dovi_tool.
Related Issues (20)
- Question about this tool
- DoVi on Xbox Series X using Plex
- Update and complete L11 metadata HOT 2
- dove_tool Profile 8 to 5 conversion for Mac support
- inject-rpu on AV1 (SVT) fails HOT 3
- Please support injecting RPU into HLS streams HOT 1
- Terminating app due to uncaught exception if build with cbuild HOT 8
- HDR10+ from DV json HOT 1
- Add support for Dolby Vision profile 20 HOT 3
- Add support for Dolby Vision Profile 9 (MPEG-4 AVC Dolby Vision, backwards compatible with SDR) HOT 1
- Documentation might need updated HOT 1
- Error reading MaxCLL and MaxFALL while parsing of xml generated by cm_analyze HOT 1
- Feature: Provide frame numbers in RPU.json HOT 1
- Question not an issue.
- Dolby Vision RPU not found for POC HOT 5
- Request: Print out the crop values for the active area offsets HOT 2
- Request: Extend --crop to accept crop values HOT 8
- Invalid value error when trying to export data HOT 1
- Profile 7 to Profile 8 / Interleaved Bitstream Question
- ATMOS audio tool HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dovi_tool.