Thank you for providing the source.
Without, it's very likely, I couldn't have done it.
Extract video:
ffmpeg -i in.mkv -c copy -an -tag:v hvc1 -pix_fmt yuv420p out.ts
Extract audio:
ffmpeg -i in.mkv -c copy -vn out.flac
Re-mux:
ffmpeg -i out.ts -i out.flac -c copy out.mkv
No re-encoding required!
The "Invalid default display window" message seems to be a known issue with ffmpeg and it's safe to ignore.
Since the "why of it" was the real interest in the question, here is the log of what I tried and how I figured it out.
fedora@/dev/pts/4:$ ffprobe VCB-Studio.mkv
[hevc @ 0x55fc4c4ac000] Invalid default display window
Input #0, matroska,webm, from 'VCB-Studio.mkv':
Metadata:
encoder : libebml v1.3.0 + libmatroska v1.4.1
creation_time : 2015-03-20T14:07:27.000000Z
Duration: 00:24:11.75, start: 0.000000, bitrate: 5185 kb/s
Chapters:
Chapter #0:0: start 0.000000, end 48.047000
Metadata:
title : Chapter 01
Chapter #0:1: start 48.047000, end 137.846000
Metadata:
title : Chapter 02
Chapter #0:2: start 137.846000, end 535.868000
Metadata:
title : Chapter 03
Chapter #0:3: start 535.868000, end 1330.871000
Metadata:
title : Chapter 04
Chapter #0:4: start 1330.871000, end 1420.877000
Metadata:
title : Chapter 05
Chapter #0:5: start 1420.877000, end 1451.741000
Metadata:
title : Chapter 06
Chapter #0:6: start 1451.741000, end 1451.745000
Metadata:
title : Chapter 07
Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv), 1920x1080, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn (default)
Metadata:
_STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 32bit built on Jun 9 2014 15:08:34
_STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 32bit built on Jun 9 2014 15:08:34
_STATISTICS_WRITING_DATE_UTC: 2015-03-20 14:07:27
_STATISTICS_WRITING_DATE_UTC-eng: 2015-03-20 14:07:27
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
BPS : 3754023
BPS-eng : 3754023
DURATION : 00:24:11.742000000
DURATION-eng : 00:24:11.742000000
NUMBER_OF_FRAMES: 34807
NUMBER_OF_FRAMES-eng: 34807
NUMBER_OF_BYTES : 681234123
NUMBER_OF_BYTES-eng: 681234123
Stream #0:1(jpn): Audio: flac, 48000 Hz, stereo, s32 (24 bit) (default)
Metadata:
_STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 32bit built on Jun 9 2014 15:08:34
_STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 32bit built on Jun 9 2014 15:08:34
_STATISTICS_WRITING_DATE_UTC: 2015-03-20 14:07:27
_STATISTICS_WRITING_DATE_UTC-eng: 2015-03-20 14:07:27
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
BPS : 1429414
BPS-eng : 1429414
DURATION : 00:24:11.745000000
DURATION-eng : 00:24:11.745000000
NUMBER_OF_FRAMES: 17013
NUMBER_OF_FRAMES-eng: 17013
NUMBER_OF_BYTES : 259393130
NUMBER_OF_BYTES-eng: 259393130
[hevc @ 0x55fc4c4d9840] Invalid default display window
Looked and found out that it was an ffmpeg bug, and shouldn't be any issue.
fedora@/dev/pts/4:$ ffmpeg -f hevc -i VCB-Studio.mkv -c copy -pix_fmt yuv420p out.ts
[hevc @ 0x55a66de94c80] Invalid NAL unit 0, skipping.
Last message repeated 7 times
[hevc @ 0x55a66de94c80] Invalid NAL unit 4, skipping.
[hevc @ 0x55a66de94c80] Invalid NAL unit 0, skipping.
[hevc @ 0x55a66de94c80] Invalid NAL unit 1, skipping.
[hevc @ 0x55a66de94c80] Invalid NAL unit 0, skipping.
Last message repeated 2 times
[hevc @ 0x55a66de94c80] missing picture in access unit with size 11255478
[extract_extradata @ 0x55a66deb5740] Invalid NAL unit 0, skipping.
Last message repeated 7 times
[extract_extradata @ 0x55a66deb5740] Invalid NAL unit 4, skipping.
[extract_extradata @ 0x55a66deb5740] Invalid NAL unit 0, skipping.
[extract_extradata @ 0x55a66deb5740] Invalid NAL unit 1, skipping.
[extract_extradata @ 0x55a66deb5740] Invalid NAL unit 0, skipping.
Last message repeated 2 times
[hevc @ 0x55a66de94c80] Invalid NAL unit 0, skipping.
Last message repeated 7 times
[hevc @ 0x55a66de94c80] Invalid NAL unit 4, skipping.
[hevc @ 0x55a66de94c80] Invalid NAL unit 0, skipping.
[hevc @ 0x55a66de94c80] Invalid NAL unit 1, skipping.
[hevc @ 0x55a66de94c80] Invalid NAL unit 0, skipping.
Last message repeated 2 times
[hevc @ 0x55a66de8bd00] Stream #0: not enough frames to estimate rate; consider increasing probesize
[hevc @ 0x55a66de8bd00] Could not find codec parameters for stream 0 (Video: hevc, none): unspecified size
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
Input #0, hevc, from 'VCB-Studio.mkv':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: hevc, none, 25 fps, 1200k tbr, 1200k tbn
Output #0, mpegts, to 'out.ts':
Metadata:
encoder : Lavf60.16.100
Stream #0:0: Video: hevc, none, q=2-31, 25 fps, 1200k tbr, 90k tbn
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[NULL @ 0x55a66de94c80] Invalid NAL unit 35, skipping.
[NULL @ 0x55a66de94c80] Invalid NAL unit 0, skipping.
Last message repeated 1 times
[NULL @ 0x55a66de94c80] Invalid NAL unit 34, skipping.
[NULL @ 0x55a66de94c80] Invalid NAL unit 38, skipping.
[NULL @ 0x55a66de94c80] missing picture in access unit with size 21988998
[out#0/mpegts @ 0x55a66deb57c0] video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[out#0/mpegts @ 0x55a66deb57c0] Output file is empty, nothing was encoded
size= 0kB time=N/A bitrate=N/A speed=N/A
fedora@/dev/pts/4:$
I first tried to specify the format of the input file, -f hevc, but I didn't like that.
fedora@/dev/pts/4:$ ffmpeg -f hevc -i VCB-Studio.mkv -c copy -pix_fmt yuv420p10le -f webm out.webm
[hevc @ 0x55a00371acc0] Invalid NAL unit 0, skipping.
Last message repeated 7 times
[hevc @ 0x55a00371acc0] Invalid NAL unit 4, skipping.
[hevc @ 0x55a00371acc0] Invalid NAL unit 0, skipping.
[hevc @ 0x55a00371acc0] Invalid NAL unit 1, skipping.
[hevc @ 0x55a00371acc0] Invalid NAL unit 0, skipping.
Last message repeated 2 times
[hevc @ 0x55a00371acc0] missing picture in access unit with size 11255478
[extract_extradata @ 0x55a0036efc00] Invalid NAL unit 0, skipping.
Last message repeated 7 times
[extract_extradata @ 0x55a0036efc00] Invalid NAL unit 4, skipping.
[extract_extradata @ 0x55a0036efc00] Invalid NAL unit 0, skipping.
[extract_extradata @ 0x55a0036efc00] Invalid NAL unit 1, skipping.
[extract_extradata @ 0x55a0036efc00] Invalid NAL unit 0, skipping.
Last message repeated 2 times
[hevc @ 0x55a00371acc0] Invalid NAL unit 0, skipping.
Last message repeated 7 times
[hevc @ 0x55a00371acc0] Invalid NAL unit 4, skipping.
[hevc @ 0x55a00371acc0] Invalid NAL unit 0, skipping.
[hevc @ 0x55a00371acc0] Invalid NAL unit 1, skipping.
[hevc @ 0x55a00371acc0] Invalid NAL unit 0, skipping.
Last message repeated 2 times
[hevc @ 0x55a003711e40] Stream #0: not enough frames to estimate rate; consider increasing probesize
[hevc @ 0x55a003711e40] Could not find codec parameters for stream 0 (Video: hevc, none): unspecified size
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
Input #0, hevc, from 'VCB-Studio.mkv':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: hevc, none, 25 fps, 1200k tbr, 1200k tbn
[webm @ 0x55a00374c040] dimensions not set
[out#0/webm @ 0x55a00373b780] Could not write header (incorrect codec parameters ?): Invalid argument
Error opening output file out.webm.
Error opening output files: Invalid argument
So I tried to see if I could force it through to .webm even using the orginal color space. Nope.
fedora@/dev/pts/4:$ ffmpeg -f hevc -analyzeduration 1500 -i VCB-Studio.mkv -c copy -pix_fmt yuv420p -f webm out.webm
[hevc @ 0x55c43ef5f2c0] Invalid NAL unit 0, skipping.
Last message repeated 7 times
[hevc @ 0x55c43ef5f2c0] Invalid NAL unit 4, skipping.
[hevc @ 0x55c43ef5f2c0] Invalid NAL unit 0, skipping.
[hevc @ 0x55c43ef5f2c0] Invalid NAL unit 1, skipping.
[hevc @ 0x55c43ef5f2c0] Invalid NAL unit 0, skipping.
Last message repeated 2 times
[hevc @ 0x55c43ef5f2c0] missing picture in access unit with size 11255478
[extract_extradata @ 0x55c43ef7e900] Invalid NAL unit 0, skipping.
Last message repeated 7 times
[extract_extradata @ 0x55c43ef7e900] Invalid NAL unit 4, skipping.
[extract_extradata @ 0x55c43ef7e900] Invalid NAL unit 0, skipping.
[extract_extradata @ 0x55c43ef7e900] Invalid NAL unit 1, skipping.
[extract_extradata @ 0x55c43ef7e900] Invalid NAL unit 0, skipping.
Last message repeated 2 times
[hevc @ 0x55c43ef5f2c0] Invalid NAL unit 0, skipping.
Last message repeated 7 times
[hevc @ 0x55c43ef5f2c0] Invalid NAL unit 4, skipping.
[hevc @ 0x55c43ef5f2c0] Invalid NAL unit 0, skipping.
[hevc @ 0x55c43ef5f2c0] Invalid NAL unit 1, skipping.
[hevc @ 0x55c43ef5f2c0] Invalid NAL unit 0, skipping.
Last message repeated 2 times
[hevc @ 0x55c43ef562c0] Stream #0: not enough frames to estimate rate; consider increasing probesize
[hevc @ 0x55c43ef562c0] Could not find codec parameters for stream 0 (Video: hevc, none): unspecified size
Consider increasing the value for the 'analyzeduration' (1500) and 'probesize' (5000000) options
Input #0, hevc, from 'VCB-Studio.mkv':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: hevc, none, 25 fps, 1200k tbr, 1200k tbn
File 'out.webm' already exists. Overwrite? [y/N] n
Not overwriting - exiting
Error opening output file out.webm.
So I listened and tried to increase -analyzeduration, but no success.
I searched around for errors related to HEVC and found:
https://github.com/jellyfin/jellyfin/issues/8495#issuecomment-1927383860
I ran this:
fedora@/dev/pts/4:$ ffmpeg -i VCB-Studio.mkv -c copy -tag:v hvc1 -pix_fmt yuv420p out.ts
[hevc @ 0x56067c738840] Invalid default display window
Input #0, matroska,webm, from 'VCB-Studio.mkv':
Metadata:
encoder : libebml v1.3.0 + libmatroska v1.4.1
creation_time : 2015-03-20T14:07:27.000000Z
Duration: 00:24:11.75, start: 0.000000, bitrate: 5185 kb/s
Chapters:
Chapter #0:0: start 0.000000, end 48.047000
Metadata:
title : Chapter 01
Chapter #0:1: start 48.047000, end 137.846000
Metadata:
title : Chapter 02
Chapter #0:2: start 137.846000, end 535.868000
Metadata:
title : Chapter 03
Chapter #0:3: start 535.868000, end 1330.871000
Metadata:
title : Chapter 04
Chapter #0:4: start 1330.871000, end 1420.877000
Metadata:
title : Chapter 05
Chapter #0:5: start 1420.877000, end 1451.741000
Metadata:
title : Chapter 06
Chapter #0:6: start 1451.741000, end 1451.745000
Metadata:
title : Chapter 07
Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv), 1920x1080, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn (default)
Metadata:
_STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 32bit built on Jun 9 2014 15:08:34
_STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 32bit built on Jun 9 2014 15:08:34
_STATISTICS_WRITING_DATE_UTC: 2015-03-20 14:07:27
_STATISTICS_WRITING_DATE_UTC-eng: 2015-03-20 14:07:27
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
BPS : 3754023
BPS-eng : 3754023
DURATION : 00:24:11.742000000
DURATION-eng : 00:24:11.742000000
NUMBER_OF_FRAMES: 34807
NUMBER_OF_FRAMES-eng: 34807
NUMBER_OF_BYTES : 681234123
NUMBER_OF_BYTES-eng: 681234123
Stream #0:1(jpn): Audio: flac, 48000 Hz, stereo, s32 (24 bit) (default)
Metadata:
_STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 32bit built on Jun 9 2014 15:08:34
_STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 32bit built on Jun 9 2014 15:08:34
_STATISTICS_WRITING_DATE_UTC: 2015-03-20 14:07:27
_STATISTICS_WRITING_DATE_UTC-eng: 2015-03-20 14:07:27
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
BPS : 1429414
BPS-eng : 1429414
DURATION : 00:24:11.745000000
DURATION-eng : 00:24:11.745000000
NUMBER_OF_FRAMES: 17013
NUMBER_OF_FRAMES-eng: 17013
NUMBER_OF_BYTES : 259393130
NUMBER_OF_BYTES-eng: 259393130
Output #0, mpegts, to 'out.ts':
Metadata:
encoder : Lavf60.16.100
Chapters:
Chapter #0:0: start 0.000000, end 48.047000
Metadata:
title : Chapter 01
Chapter #0:1: start 48.047000, end 137.846000
Metadata:
title : Chapter 02
Chapter #0:2: start 137.846000, end 535.868000
Metadata:
title : Chapter 03
Chapter #0:3: start 535.868000, end 1330.871000
Metadata:
title : Chapter 04
Chapter #0:4: start 1330.871000, end 1420.877000
Metadata:
title : Chapter 05
Chapter #0:5: start 1420.877000, end 1451.741000
Metadata:
title : Chapter 06
Chapter #0:6: start 1451.741000, end 1451.745000
Metadata:
title : Chapter 07
Stream #0:0: Video: hevc (Main 10) (hvc1 / 0x31637668), yuv420p10le(tv), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps, 23.98 tbr, 90k tbn (default)
Metadata:
_STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 32bit built on Jun 9 2014 15:08:34
_STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 32bit built on Jun 9 2014 15:08:34
_STATISTICS_WRITING_DATE_UTC: 2015-03-20 14:07:27
_STATISTICS_WRITING_DATE_UTC-eng: 2015-03-20 14:07:27
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
BPS : 3754023
BPS-eng : 3754023
DURATION : 00:24:11.742000000
DURATION-eng : 00:24:11.742000000
NUMBER_OF_FRAMES: 34807
NUMBER_OF_FRAMES-eng: 34807
NUMBER_OF_BYTES : 681234123
NUMBER_OF_BYTES-eng: 681234123
Stream #0:1(jpn): Audio: flac, 48000 Hz, stereo, s32 (24 bit) (default)
Metadata:
_STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 32bit built on Jun 9 2014 15:08:34
_STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 32bit built on Jun 9 2014 15:08:34
_STATISTICS_WRITING_DATE_UTC: 2015-03-20 14:07:27
_STATISTICS_WRITING_DATE_UTC-eng: 2015-03-20 14:07:27
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
BPS : 1429414
BPS-eng : 1429414
DURATION : 00:24:11.745000000
DURATION-eng : 00:24:11.745000000
NUMBER_OF_FRAMES: 17013
NUMBER_OF_FRAMES-eng: 17013
NUMBER_OF_BYTES : 259393130
NUMBER_OF_BYTES-eng: 259393130
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[mpegts @ 0x56067c766c80] Stream 1, codec flac, is muxed as a private data stream and may not be recognized upon reading.
[out#0/mpegts @ 0x56067c73d000] video:665268kB audio:253314kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.366844%
size= 949509kB time=00:24:11.69 bitrate=5358.2kbits/s speed= 875x
and it worked, but the audio was not playing, despite being there, it was "private". The video worked great though, so I just seperated the .ts and the .flac, remuxed and it was a success!
mkvmerge -o out.mkv in.mkv subtitle.ass, and everything worked well. Althoung it solves my original problem, I'm still curious about why ffmpeg produced the error. Is there other method I can try to find out the problem?