Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > High Efficiency Video Coding (HEVC)

Reply
 
Thread Tools Search this Thread Display Modes
Old 5th February 2019, 23:34   #61  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Quote:
Originally Posted by benwaggoner View Post
Resizing is a low-pass filter, and can reduce peak brightness significantly if it is from small details like stars.
Probably every video when measured for peak brightness should actually go through bit of low pass filtering. This is what some tools do (eg. Cortex).
1 pixel with 2K nits doesn't really mean much, does it?
kolak is offline   Reply With Quote
Old 6th February 2019, 02:02   #62  |  Link
mini-moose
Registered User
 
Join Date: Oct 2007
Posts: 385
Quote:
Originally Posted by Selur View Post
to output the data:
Code:
ffmpeg -i "E:\Output\HDR-10+.mp4" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | hdr10plus_parser.exe -
just to check whether dynamic data is present
Code:
ffmpeg -i "E:\Output\HDR-10+.mp4" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | hdr10plus_parser.exe - --verify
Thanks!

hevc_mp4toannexb - does it need to be mp4 or can be mkv too?
mini-moose is offline   Reply With Quote
Old 6th February 2019, 13:13   #63  |  Link
halls
Registered User
 
Join Date: Jun 2010
Posts: 19
Quote:
Originally Posted by quietvoid View Post
Hi, since HDR10+ titles started coming out I've been working on extracting the metadata from them.
For now the only purpose is to generate JSON files that x265 can use when reencoding these sources.

So I've made a tool which does just that, extracts the metadata and creates a compatible JSON file for x265.
It outputs a .log file with the raw bytes of every SEI message as well as a .json file with metadata formatted for HDR10+ LLC (not legacy).
HDR10+ LLC is what most current titles have been formatted like for now.

The tool is available on GitHub here: https://github.com/quietvoid/hdr10plus_parser
HDR10+ samples are available in the assets folder, they're also used for regression tests.

Hopefully this is useful for anyone wanting to retain HDR10+ after reencode as well as developers who have ideas about reusing the metadata on decode

Thank You!

Last edited by halls; 6th February 2019 at 13:18.
halls is offline   Reply With Quote
Old 6th February 2019, 15:17   #64  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,259
Quote:
hevc_mp4toannexb - does it need to be mp4 or can be mkv too?
the bitstream filter has nothing to do with the container, thus it doesn't matter whether the input is an mp4/mkv/m2ts/....
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 7th February 2019, 11:17   #65  |  Link
mini-moose
Registered User
 
Join Date: Oct 2007
Posts: 385
Quote:
Originally Posted by Selur View Post
the bitstream filter has nothing to do with the container, thus it doesn't matter whether the input is an mp4/mkv/m2ts/....
I tried this:
Code:
ffmpeg -i "hdr10plus.sample.mkv" -vcodec copy -an -sn -vbsf hevc_mkvtoannexb -f rawvideo - | hdr10plus_parser.exe - --verify
Unknown bitstream filter hevc_mkvtoannexb

and

Code:
ffmpeg -i "hdr10plus.sample.mkv" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | hdr10plus_parser.exe - --verify
av_interleaved_write_frame(): Invalid argument
Error writing trailer of pipe:: Invalid argument
frame= 1 fps=0.0 q=-1.0 Lsize= 587kB time=00:00:00.00 bitrate=N/A speed=N/A
video:587kB audio:0kB subtitle:0kB other streams:0kB global headers:1kB muxing overhead: 0.000000%
Conversion failed!

works fine with:
Code:
hdr10plus_parser.exe hdr10plus.sample_track1_[und].hevc
I'm probably something wrong. I'm not great with this, which is why I asked for an example
mini-moose is offline   Reply With Quote
Old 7th February 2019, 12:42   #66  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,565
Quote:
Originally Posted by mini-moose View Post
av_interleaved_write_frame(): Invalid argument
Error writing trailer of pipe:: Invalid argument
What does the line directly above it say? Maybe hdr10plus_parser aborts once it finds dynamic data while ffmpeg tries to send the whole stream?
sneaker_ger is offline   Reply With Quote
Old 7th February 2019, 13:52   #67  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Quote:
Originally Posted by mini-moose View Post
Code:
ffmpeg -i "hdr10plus.sample.mkv" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | hdr10plus_parser.exe - --verify
av_interleaved_write_frame(): Invalid argument
Error writing trailer of pipe:: Invalid argument
frame= 1 fps=0.0 q=-1.0 Lsize= 587kB time=00:00:00.00 bitrate=N/A speed=N/A
video:587kB audio:0kB subtitle:0kB other streams:0kB global headers:1kB muxing overhead: 0.000000%
Conversion failed!
Looks like you simply use it wrongly:

fmpeg -i "input.mkv" -c:v copy -vbsf hevc_mp4toannexb -f hevc - | hdr10plus_parser.exe -

from parser website as an example.

Source container should not matter. You use -vbsf hevc_mp4toannexb always and then -f hevc, not rawvideo. This command just extracts h265 elementary stream from container and passes to parser (without actually creating file). It's just shorter version of 2 stage process where you first create elementary h265 file from your source and then put it through parser.


update:

I just read it properly and rawvideo or hevc does the same in this case.

Last edited by kolak; 7th February 2019 at 20:00.
kolak is offline   Reply With Quote
Old 7th February 2019, 14:44   #68  |  Link
quietvoid
Registered User
 
Join Date: Jan 2019
Location: Canada
Posts: 570
Using --verify does interrupt ffmpeg, but the error would be broken pipe.
quietvoid is offline   Reply With Quote
Old 7th February 2019, 16:23   #69  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,259
When I call:
Code:
ffmpeg -i "e:\Output\with HDR-10+.mp4" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | hdr10plus_parser.exe - --verify
I get:
Code:
Parsing HEVC file for dynamic metadata...
ffmpeg version N-93064-ged20fbcd48 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8.2.1 (Rev1, Built by MSYS2 project) 20181214
  configuration:  --disable-autodetect --enable-amf --enable-bzlib --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-iconv --enable-lzma --enable-nvenc --enable-zlib --enable-sdl2 --disable-debug --enable-ffnvcodec --enable-nvdec --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libdav1d --enable-fontconfig --enable-libass --enable-libbluray --enable-libfreetype --enable-libmfx --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libwavpack --enable-libwebp --enable-libxml2 --enable-libzimg --enable-libshine --enable-gpl --enable-avisynth --enable-libxvid --enable-libaom --enable-version3 --enable-mbedtls --extra-cflags=-DLIBTWOLAME_STATIC --extra-libs=-lstdc++ --extra-cflags=-DLIBXML_STATIC --extra-libs=-liconv
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 46.100 / 58. 46.100
  libavformat    58. 26.100 / 58. 26.100
  libavdevice    58.  6.101 / 58.  6.101
  libavfilter     7. 48.100 /  7. 48.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001cae4f52980] st: 0 edit list: 2 Missing key frame while searching for timestamp: 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001cae4f52980] st: 0 edit list 2 Cannot find an index entry before timestamp: 0.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'e:\Output\with HDR-10+.mp4':
  Metadata:
    major_brand     : hev1
    minor_version   : 0
    compatible_brands: iso4hev1
    creation_time   : 2019-02-03T13:36:13.000000Z
    encoder         : Hybrid 2019.02.02.1
  Duration: 00:00:47.81, start: 0.000000, bitrate: 10657 kb/s
    Stream #0:0(und): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv, bt709/unknown/unknown), 3840x2160 [SAR 1:1 DAR 16:9], 10410 kb/s, 24 fps, 24 tbr, 24k tbn, 24 tbc (default)
    Metadata:
      creation_time   : 2019-02-03T13:36:13.000000Z
      handler_name    : 265#video:fps=24:delay=18@GPAC0.7.2-DEV-rev992-g4d4da2b20-ab-suite
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 255 kb/s (default)
    Metadata:
      creation_time   : 2019-02-03T13:29:57.000000Z
Output #0, rawvideo, to 'pipe:':
  Metadata:
    major_brand     : hev1
    minor_version   : 0
    compatible_brands: iso4hev1
    encoder         : Lavf58.26.100
    Stream #0:0(und): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv, bt709/unknown/unknown), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 10410 kb/s, 24 fps, 24 tbr, 24 tbn, 24 tbc (default)
    Metadata:
      creation_time   : 2019-02-03T13:36:13.000000Z
      handler_name    : 265#video:fps=24:delay=18@GPAC0.7.2-DEV-rev992-g4d4da2b20-ab-suite
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
Dynamic HDR10+ metadata detected.
av_interleaved_write_frame(): Broken pipe
Error writing trailer of pipe:: Broken pipe
frame=    1 fps=0.0 q=-1.0 Lsize=      32kB time=-00:00:00.04 bitrate=N/A speed=N/A
video:98kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Conversion failed!
The important output here is the:
Quote:
Dynamic HDR10+ metadata detected.
when calling:
Code:
ffmpeg -i "e:\Output\with HDR-10+.mp4" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | hdr10plus_parser.exe -
I get:
Code:
Parsing HEVC file for dynamic metadata...
ffmpeg version N-93064-ged20fbcd48 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8.2.1 (Rev1, Built by MSYS2 project) 20181214
  configuration:  --disable-autodetect --enable-amf --enable-bzlib --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-iconv --enable-lzma --enable-nvenc --enable-zlib --enable-sdl2 --disable-debug --enable-ffnvcodec --enable-nvdec --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libdav1d --enable-fontconfig --enable-libass --enable-libbluray --enable-libfreetype --enable-libmfx --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libwavpack --enable-libwebp --enable-libxml2 --enable-libzimg --enable-libshine --enable-gpl --enable-avisynth --enable-libxvid --enable-libaom --enable-version3 --enable-mbedtls --extra-cflags=-DLIBTWOLAME_STATIC --extra-libs=-lstdc++ --extra-cflags=-DLIBXML_STATIC --extra-libs=-liconv
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 46.100 / 58. 46.100
  libavformat    58. 26.100 / 58. 26.100
  libavdevice    58.  6.101 / 58.  6.101
  libavfilter     7. 48.100 /  7. 48.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001029e292980] st: 0 edit list: 2 Missing key frame while searching for timestamp: 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001029e292980] st: 0 edit list 2 Cannot find an index entry before timestamp: 0.
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'e:\Output\with HDR-10+.mp4':
  Metadata:
    major_brand     : hev1
    minor_version   : 0
    compatible_brands: iso4hev1
    creation_time   : 2019-02-03T13:36:13.000000Z
    encoder         : Hybrid 2019.02.02.1
  Duration: 00:00:47.81, start: 0.000000, bitrate: 10657 kb/s
    Stream #0:0(und): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv, bt709/unknown/unknown), 3840x2160 [SAR 1:1 DAR 16:9], 10410 kb/s, 24 fps, 24 tbr, 24k tbn, 24 tbc (default)
    Metadata:
      creation_time   : 2019-02-03T13:36:13.000000Z
      handler_name    : 265#video:fps=24:delay=18@GPAC0.7.2-DEV-rev992-g4d4da2b20-ab-suite
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 255 kb/s (default)
    Metadata:
      creation_time   : 2019-02-03T13:29:57.000000Z
Output #0, rawvideo, to 'pipe:':
  Metadata:
    major_brand     : hev1
    minor_version   : 0
    compatible_brands: iso4hev1
    encoder         : Lavf58.26.100
    Stream #0:0(und): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv, bt709/unknown/unknown), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 10410 kb/s, 24 fps, 24 tbr, 24 tbn, 24 tbc (default)
    Metadata:
      creation_time   : 2019-02-03T13:36:13.000000Z
      handler_name    : 265#video:fps=24:delay=18@GPAC0.7.2-DEV-rev992-g4d4da2b20-ab-suite
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
frame= 1146 fps=127 q=-1.0 Lsize=   60682kB time=00:00:47.66 bitrate=10428.8kbits/s speed= 5.3x
video:60682kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
Done.
Generating HDR10+ metadata JSON file... Done.
If you are not interessted in the ffmpeg output add '-loglevel quiet' and when calling:
Code:
ffmpeg -loglevel quiet -i "e:\Output\with HDR-10+.mp4" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | hdr10plus_parser.exe - --verify
you would just get:
Code:
Parsing HEVC file for dynamic metadata...
Dynamic HDR10+ metadata detected.
Cu Selur
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 7th February 2019, 19:49   #70  |  Link
benwaggoner
Moderator
 
Join Date: Jan 2006
Location: Portland, OR
Posts: 4,752
Quote:
Originally Posted by kolak View Post
Probably every video when measured for peak brightness should actually go through bit of low pass filtering. This is what some tools do (eg. Cortex).
1 pixel with 2K nits doesn't really mean much, does it?
If you have bright blue stars in 4K RGB, the peak nits can be reduced a fair amount in a conversion to Y'CbCr 1080p. the brightest single pixel could come out with less than half the initial nits in some edge cases. Compression itself could reduce that farther.

The spec for static metadata (MaxFALL and MaxCLL) requires that the calculations be done in RGB, even though HDR content is always delivered in 4:2:0. It could be argued that metadata should be done based on the highest bitrate for the highest resolution encode, since that's the largest actual values you'd get, and more conservative values will allow more aggressive use of a panel's actual abilities.

However, tone mappers could theoretically use knowledge of the intended values to try to reconstruct those values in tone mapping. I don't know if any do it.

This stuff gets quickly complicated, which is why all good HDR tone mappers required the efforts of many PhDs. Clear specs on what the data is supposed to represent are so essential, and often much less obvious that it seems at first glance.
__________________
Ben Waggoner
Principal Video Specialist, Amazon Prime Video

My Compression Book
benwaggoner is offline   Reply With Quote
Old 7th February 2019, 20:02   #71  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Yes, it's "slightly" bit more complex than it looks like.
Maybe this is why about every HDR tool reports different values for given source
kolak is offline   Reply With Quote
Old 10th February 2019, 11:12   #72  |  Link
mini-moose
Registered User
 
Join Date: Oct 2007
Posts: 385
Quote:
Originally Posted by Selur View Post
When I call:
when calling:
Code:
ffmpeg -i "e:\Output\with HDR-10+.mp4" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | hdr10plus_parser.exe -
I get:
Code:
Generating HDR10+ metadata JSON file... Done.
Thanks. Don't know what is wrong but I still get the same results

Code:
"D:\hdr10plus_parser\ffmpeg.exe" -i "D:\hdr10plus_parser\hdr10plus.sample.mkv" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | "D:\hdr10plus_parser\hdr10plus_parser.exe" -
Gets me:
Code:
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
av_interleaved_write_frame(): Invalid argument
Error writing trailer of pipe:: Invalid argument
frame=    1 fps=0.0 q=-1.0 Lsize=     587kB time=00:00:00.00 bitrate=N/A speed=N/A
video:587kB audio:0kB subtitle:0kB other streams:0kB global headers:1kB muxing overhead: 0.000000%
Conversion failed!
with loglevel quite:
Code:
"D:\hdr10plus_parser\ffmpeg.exe" -loglevel quiet -i "D:\hdr10plus_parser\hdr10plus.sample.mkv" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | "D:\hdr10plus_parser\hdr10plus_parser.exe" -
I get: "Invalid file path."

Last edited by mini-moose; 10th February 2019 at 11:16.
mini-moose is offline   Reply With Quote
Old 10th February 2019, 11:28   #73  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Errors says: "Invalid file path.", so looks like parser not getting data.

Does this work:
"D:\hdr10plus_parser\ffmpeg.exe" -i "D:\hdr10plus_parser\hdr10plus.sample.mkv" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f null -
kolak is offline   Reply With Quote
Old 10th February 2019, 12:47   #74  |  Link
mini-moose
Registered User
 
Join Date: Oct 2007
Posts: 385
Quote:
Originally Posted by kolak View Post
Errors says: "Invalid file path.", so looks like parser not getting data.

Does this work:
"D:\hdr10plus_parser\ffmpeg.exe" -i "D:\hdr10plus_parser\hdr10plus.sample.mkv" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f null -
this gives:
Code:
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
frame= 3583 fps=0.0 q=-1.0 Lsize=N/A time=00:02:29.35 bitrate=N/A speed= 170x
video:821419kB audio:0kB subtitle:0kB other streams:0kB global headers:1kB muxing overhead: unknown
mini-moose is offline   Reply With Quote
Old 10th February 2019, 17:18   #75  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
It worked fine, so there is some issue with piping part.
Try changing paths- just in case there is a typo etc.
kolak is offline   Reply With Quote
Old 10th February 2019, 21:15   #76  |  Link
quietvoid
Registered User
 
Join Date: Jan 2019
Location: Canada
Posts: 570
Quote:
Originally Posted by mini-moose View Post
Thanks. Don't know what is wrong but I still get the same results

Code:
"D:\hdr10plus_parser\ffmpeg.exe" -i "D:\hdr10plus_parser\hdr10plus.sample.mkv" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | "D:\hdr10plus_parser\hdr10plus_parser.exe" -
Gets me:
Code:
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
av_interleaved_write_frame(): Invalid argument
Error writing trailer of pipe:: Invalid argument
frame=    1 fps=0.0 q=-1.0 Lsize=     587kB time=00:00:00.00 bitrate=N/A speed=N/A
video:587kB audio:0kB subtitle:0kB other streams:0kB global headers:1kB muxing overhead: 0.000000%
Conversion failed!
with loglevel quite:
Code:
"D:\hdr10plus_parser\ffmpeg.exe" -loglevel quiet -i "D:\hdr10plus_parser\hdr10plus.sample.mkv" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | "D:\hdr10plus_parser\hdr10plus_parser.exe" -
I get: "Invalid file path."
Both of the CLIs you quoted work for me.
Can you try updating to the latest release, 0.2.3 please? I've changed the whole input argument handling so maybe the errors get fixed.
Also which version of ffmpeg are you using? I've been testing using the Zeranoe FFmpeg builds.

This is what I tested with just now:
Code:
"ffmpeg.exe" -i ".\input.mkv" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | ".\hdr10plus_parser.exe" - -o ".\test.json"
quietvoid is offline   Reply With Quote
Old 11th February 2019, 10:34   #77  |  Link
mini-moose
Registered User
 
Join Date: Oct 2007
Posts: 385
Quote:
Originally Posted by quietvoid View Post
Both of the CLIs you quoted work for me.
Can you try updating to the latest release, 0.2.3 please? I've changed the whole input argument handling so maybe the errors get fixed.
Also which version of ffmpeg are you using? I've been testing using the Zeranoe FFmpeg builds.

This is what I tested with just now:
Code:
"ffmpeg.exe" -i ".\input.mkv" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | ".\hdr10plus_parser.exe" - -o ".\test.json"
Using the static x64 build from zeranoe.

Now updated to the new hdr10plus_parser version and things are looking much better!

Code:
"D:\hdr10plus_parser\ffmpeg.exe" -i "D:\hdr10plus_parser\hdr10plus.sample.mkv" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | "D:\hdr10plus_parser\hdr10plus_parser.exe" - -o "D:\hdr10plus_parser\test.json"
result:
Code:
Reading parsed dynamic metadata... Done.
Writing metadata to JSON file... Done.
then:
Code:
"D:\hdr10plus_parser\ffmpeg.exe" -loglevel quiet -i "D:\hdr10plus_parser\hdr10plus.sample.mkv" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | "D:\hdr10plus_parser\hdr10plus_parser.exe" -
pause
result:
Code:
Parsing HEVC file for dynamic metadata...
Dynamic HDR10+ metadata detected.
but without specifying json save path:
Code:
"D:\hdr10plus_parser\ffmpeg.exe" -i "D:\hdr10plus_parser\hdr10plus.sample.mkv" -vcodec copy -an -sn -vbsf hevc_mp4toannexb -f rawvideo - | "D:\hdr10plus_parser\hdr10plus_parser.exe" -
result:
Code:
Dynamic HDR10+ metadata detected.
av_interleaved_write_frame(): Broken pipe
Error writing trailer of pipe:: Broken pipe
frame=    1 fps=0.0 q=-1.0 Lsize=      32kB time=00:00:00.00 bitrate=N/A speed=N/A
video:587kB audio:0kB subtitle:0kB other streams:0kB global headers:1kB muxing overhead: unknown
Conversion failed!
Thanks!
mini-moose is offline   Reply With Quote
Old 6th September 2019, 15:26   #78  |  Link
Nico8583
Registered User
 
Join Date: Jan 2010
Location: France
Posts: 851
Hi,
I'm trying to extract metadata with ffmpeg input, it seems to work but it's very slow, it is faster to extract HEVC stream then extract metadata from it but it writes a huge file.
Is it normal ffmpeg method is slower than extract then parse ?
Thank you.
Nico8583 is offline   Reply With Quote
Old 7th September 2019, 04:08   #79  |  Link
quietvoid
Registered User
 
Join Date: Jan 2019
Location: Canada
Posts: 570
Quote:
Originally Posted by Nico8583 View Post
Hi,
I'm trying to extract metadata with ffmpeg input, it seems to work but it's very slow, it is faster to extract HEVC stream then extract metadata from it but it writes a huge file.
Is it normal ffmpeg method is slower than extract then parse ?
Thank you.
It's single threaded but limited to I/O. It shouldn't be slow, and (probably) depends on your hard drive.
I can get 450 MB/s (1000 fps) parsing an MKV file with ffmpeg on an SSD.

Last edited by quietvoid; 7th September 2019 at 04:17.
quietvoid is offline   Reply With Quote
Old 7th September 2019, 08:41   #80  |  Link
Nico8583
Registered User
 
Join Date: Jan 2010
Location: France
Posts: 851
Quote:
Originally Posted by quietvoid View Post
It's single threaded but limited to I/O. It shouldn't be slow, and (probably) depends on your hard drive.
I can get 450 MB/s (1000 fps) parsing an MKV file with ffmpeg on an SSD.
Thank you, I get only 2 FPS when I use it (I use copy to video codec, I don't recode it).
Could you give me the ffmpeg version you use and the command line ? Thank you.
Nico8583 is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 00:31.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.