Closed tchjunky closed 9 years ago
@tchjunky Thank you for the very detailed bug report!
How did you make this .mkv
file? I ask because you're getting the same error (albeit a confusing one) if you were trying to transcode an original encrypted DVD. Notice this line in your log:
libdvdread: Encrypted DVD support unavailable.
You're getting the "invalid subtitle track information" error from transcode-video
because HandBrakeCLI
doesn't always return error codes and one of the first thing my code does is check for subtitle information. I will try to improve that error in the future, but that's not really the bug here.
I didn't think it was possible to have a still-encrypted .mkv
file but apparently that's what HandBrakeCLI
thinks.
@tchjunky I'm leaving this open because I need to find out why this is working in the old Bash-based scripts. HandBrakeCLI
should fail there as well and I don't know why it isn't.
@tchjunky OK, the encryption thing is weird but that's not the bug. It appears the regular expression test on line 125 of media.rb
is somehow failing. Which doesn't make sense because the console spew you pasted in:
+ subtitle tracks:
+ 1, English (iso639-2: eng) (Bitmap)(VOBSUB)
...should be parseable. I suspect there's yet another DOS-style line ending problem here.
Perplexing. I remembered seeing those libdvdread statements from the Bash scripts, but didn't think anything of it. You can see at the end of the dump that the transcoding kicks in. I've been creating my MKVs with MakeMKV by selecting tracks and exporting using the standard steps.
Here's an output of the same file run from transcode-video.sh:
$ transcode-video.sh title01.mkv
stat: cannot read file system information for ‘%z’: No such file or directory
/usr/local/bin/transcode-video.sh: line 754: ( File: "title01.mkv"
ID: 58cdbef500000000 Namelen: 255 Type: UNKNOWN (0x3e700ff)
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 732533503 Free: 508023015 Available: 508023015
Inodes: Total: 18446744073709551615 Free: -1 * 8) / ((duration_array[0] * 60 * 60) + (duration_array[1] * 60) + duration_array[2]): missing `)' (error token is ": "title01.mkv"
ID: 58cdbef500000000 Namelen: 255 Type: UNKNOWN (0x3e700ff)
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 732533503 Free: 508023015 Available: 508023015
Inodes: Total: 18446744073709551615 Free: -1 * 8) / ((duration_array[0] * 60 * 60) + (duration_array[1] * 60) + duration_array[2])")
Transcoding: title01.mkv
[03:57:28] hb_init: starting libhb thread
HandBrake 0.10.1 (2015030800) - MinGW x86_64 - https://handbrake.fr
4 CPUs detected
Opening title01.mkv...
[03:57:28] CPU: Intel(R) Core(TM) i5-4670K CPU @ 3.40GHz
[03:57:28] - Intel microarchitecture Haswell
[03:57:28] - logical processor count: 4
[03:57:28] OpenCL device #1: Advanced Micro Devices, Inc. Pitcairn
[03:57:28] - OpenCL version: 1.2 AMD-APP (1445.5)
[03:57:28] - driver version: 1445.5 (VM)
[03:57:28] - device type: GPU
[03:57:28] - supported: YES
[03:57:28] Intel Quick Sync Video support: no
[03:57:28] hb_scan: path=title01.mkv, title_index=1
libbluray/bdnav/index_parse.c:162: indx_parse(): error opening title01.mkv/BDMV/index.bdmv
libbluray/bdnav/index_parse.c:162: indx_parse(): error opening title01.mkv/BDMV/BACKUP/index.bdmv
libbluray/bluray.c:2182: nav_get_title_list(title01.mkv) failed
[03:57:28] bd: not a bd - trying as a stream/file instead
libdvdnav: Using dvdnav version 5.0.1
libdvdread: Encrypted DVD support unavailable.
libdvdread:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.IFO failed
libdvdread:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.BUP failed
libdvdread: Can't open file VIDEO_TS.IFO.
libdvdnav: vm: failed to read VIDEO_TS.IFO
[03:57:28] dvd: not a dvd - trying as a stream/file instead
Input #0, matroska,webm, from 'title01.mkv':
Metadata:
title : BABYLON 5 IN THE BEGINNING
Duration: 01:34:17.65, start: 0.000000, bitrate: N/A
Chapter #0.0: start 0.066733, end 71.771700
Metadata:
title : Chapter 01
Chapter #0.1: start 71.771700, end 341.074067
Metadata:
title : Chapter 02
Chapter #0.2: start 341.074067, end 605.371433
Metadata:
title : Chapter 03
Chapter #0.3: start 605.371433, end 851.750900
Metadata:
title : Chapter 04
Chapter #0.4: start 851.750900, end 962.261300
Metadata:
title : Chapter 05
Chapter #0.5: start 962.261300, end 1181.079900
Metadata:
title : Chapter 06
Chapter #0.6: start 1181.079900, end 1341.239900
Metadata:
title : Chapter 07
Chapter #0.7: start 1341.239900, end 1429.461367
Metadata:
title : Chapter 08
Chapter #0.8: start 1429.461367, end 1580.512267
Metadata:
title : Chapter 09
Chapter #0.9: start 1580.512267, end 1720.852467
Metadata:
title : Chapter 10
Chapter #0.10: start 1720.852467, end 1962.160200
Metadata:
title : Chapter 11
Chapter #0.11: start 1962.160200, end 2150.281467
Metadata:
title : Chapter 12
Chapter #0.12: start 2150.281467, end 2330.761767
Metadata:
title : Chapter 13
Chapter #0.13: start 2330.761767, end 2465.162700
Metadata:
title : Chapter 14
Chapter #0.14: start 2465.162700, end 2615.579633
Metadata:
title : Chapter 15
Chapter #0.15: start 2615.579633, end 2945.208933
Metadata:
title : Chapter 16
Chapter #0.16: start 2945.208933, end 3079.843433
Metadata:
title : Chapter 17
Chapter #0.17: start 3079.843433, end 3297.260633
Metadata:
title : Chapter 18
Chapter #0.18: start 3297.260633, end 3556.119233
Metadata:
title : Chapter 19
Chapter #0.19: start 3556.119233, end 3743.940200
Metadata:
title : Chapter 20
Chapter #0.20: start 3743.940200, end 3934.931000
Metadata:
title : Chapter 21
Chapter #0.21: start 3934.931000, end 4188.951433
Metadata:
title : Chapter 22
Chapter #0.22: start 4188.951433, end 4330.125800
Metadata:
title : Chapter 23
Chapter #0.23: start 4330.125800, end 4521.049867
Metadata:
title : Chapter 24
Chapter #0.24: start 4521.049867, end 4672.701367
Metadata:
title : Chapter 25
Chapter #0.25: start 4672.701367, end 4890.652433
Metadata:
title : Chapter 26
Chapter #0.26: start 4890.652433, end 5118.379933
Metadata:
title : Chapter 27
Chapter #0.27: start 5118.379933, end 5335.897233
Metadata:
title : Chapter 28
Chapter #0.28: start 5335.897233, end 5604.098500
Metadata:
title : Chapter 29
Chapter #0.29: start 5604.098500, end 5657.652000
Metadata:
title : Chapter 30
Stream #0.0(eng): Video: mpeg2video (Main), yuv420p, 720x480 [PAR 32:27 DAR 16:9], 7500 kb/s, PAR 186:157 DAR 279:157, 29.97 fps, 1k tbn, 59.94 tbc
Stream #0.1(eng): Audio: ac3, 48000 Hz, 5.1, fltp, 448 kb/s (default)
Metadata:
title : Surround 5.1
Stream #0.2(eng): Subtitle: dvdsub (default)
[03:57:28] dxva2:IDirect3D9_GetAdapterIdentifier failed
[03:57:28] dxva2:IDirect3D9_CreateDevice failed
[03:57:28] dxva2:Failed to create Direct3D device
[03:57:28] scan: decoding previews for title 1
[03:57:28] scan: audio 0x1: ac3, rate=48000Hz, bitrate=448000 English (AC3) (5.1 ch)
Scanning title 1 of 1, preview 8, 80.00 %[03:57:29] scan: 10 previews, 720x480, 29.970 fps, autocrop = 0/0/2/4, aspect 16:9, PAR 32:27
Scanning title 1 of 1, preview 10, 100.00 %[03:57:29] libhb: scan thread found 1 valid title(s)
+ title 1:
+ stream: title01.mkv
+ duration: 01:34:17
+ size: 720x480, pixel aspect: 32/27, display aspect: 1.78, 29.970 fps
+ autocrop: 0/0/2/4
+ support opencl: yes
+ support hwd: no
+ chapters:
+ 1: cells 0->0, 0 blocks, duration 00:01:12
+ 2: cells 0->0, 0 blocks, duration 00:04:29
+ 3: cells 0->0, 0 blocks, duration 00:04:24
+ 4: cells 0->0, 0 blocks, duration 00:04:06
+ 5: cells 0->0, 0 blocks, duration 00:01:51
+ 6: cells 0->0, 0 blocks, duration 00:03:39
+ 7: cells 0->0, 0 blocks, duration 00:02:40
+ 8: cells 0->0, 0 blocks, duration 00:01:28
+ 9: cells 0->0, 0 blocks, duration 00:02:31
+ 10: cells 0->0, 0 blocks, duration 00:02:20
+ 11: cells 0->0, 0 blocks, duration 00:04:01
+ 12: cells 0->0, 0 blocks, duration 00:03:08
+ 13: cells 0->0, 0 blocks, duration 00:03:00
+ 14: cells 0->0, 0 blocks, duration 00:02:14
+ 15: cells 0->0, 0 blocks, duration 00:02:30
+ 16: cells 0->0, 0 blocks, duration 00:05:30
+ 17: cells 0->0, 0 blocks, duration 00:02:15
+ 18: cells 0->0, 0 blocks, duration 00:03:37
+ 19: cells 0->0, 0 blocks, duration 00:04:19
+ 20: cells 0->0, 0 blocks, duration 00:03:08
+ 21: cells 0->0, 0 blocks, duration 00:03:11
+ 22: cells 0->0, 0 blocks, duration 00:04:14
+ 23: cells 0->0, 0 blocks, duration 00:02:21
+ 24: cells 0->0, 0 blocks, duration 00:03:11
+ 25: cells 0->0, 0 blocks, duration 00:02:32
+ 26: cells 0->0, 0 blocks, duration 00:03:38
+ 27: cells 0->0, 0 blocks, duration 00:03:48
+ 28: cells 0->0, 0 blocks, duration 00:03:38
+ 29: cells 0->0, 0 blocks, duration 00:04:28
+ 30: cells 0->0, 0 blocks, duration 00:00:54
+ audio tracks:
+ 1, English (AC3) (5.1 ch) (iso639-2: eng), 48000Hz, 448000bps
+ subtitle tracks:
+ 1, English (iso639-2: eng) (Bitmap)(VOBSUB)
[03:57:29] 1 job(s) to process
[03:57:29] starting job
[03:57:29] Auto Passthru: allowed codecs are AAC, AC3, DTS, DTS-HD, MP3
[03:57:29] Auto Passthru: no valid fallback specified
[03:57:29] Auto Passthru: using AC3 Passthru for track 2
[03:57:29] work: mixdown not specified, track 1 setting mixdown Dolby Pro Logic II
[03:57:29] work: bitrate not specified, track 1 setting bitrate 160 Kbps
[03:57:29] sync: expecting 169560 video frames
[03:57:29] job configuration:
[03:57:29] * source
[03:57:29] + title01.mkv
[03:57:29] + title 1, chapter(s) 1 to 30
[03:57:29] + container: matroska,webm
[03:57:29] * destination
[03:57:29] + title01.mp4
[03:57:29] + container: MPEG-4 (libavformat)
[03:57:29] + chapter markers
[03:57:29] * video track
[03:57:29] + decoder: mpeg2video
[03:57:29] + bitrate 7500 kbps
[03:57:29] + filters
[03:57:29] + Framerate Shaper (1:27000000:1126125)
[03:57:29] + frame rate: 29.970 fps -> constant 23.976 fps
[03:57:29] + Crop and Scale (720:480:0:0:0:0)
[03:57:29] + source: 720 * 480, crop (0/0/0/0): 720 * 480, scale: 720 * 480
[03:57:29] + strict anamorphic
[03:57:29] + storage dimensions: 720 * 480, mod 0
[03:57:29] + pixel aspect ratio: 32 / 27
[03:57:29] + display dimensions: 853 * 480
[03:57:29] + encoder: H.264 (libx264)
[03:57:29] + options: vbv-maxrate=2000:vbv-bufsize=1000:crf-max=25
[03:57:29] + quality: 16.00 (RF)
[03:57:29] * audio track 1
[03:57:29] + decoder: English (AC3) (5.1 ch) (track 1, id 0x1)
[03:57:29] + bitrate: 448 kbps, samplerate: 48000 Hz
[03:57:29] + mixdown: Dolby Pro Logic II
[03:57:29] + encoder: AAC (libavcodec)
[03:57:29] + bitrate: 160 kbps, samplerate: 48000 Hz
[03:57:29] * audio track 2
[03:57:29] + decoder: English (AC3) (5.1 ch) (track 1, id 0x1)
[03:57:29] + bitrate: 448 kbps, samplerate: 48000 Hz
[03:57:29] + AC3 Passthru
[03:57:29] reader: first SCR 6030 id 0x0 DTS -2970
[03:57:29] encx264: min-keyint: 24, keyint: 240
[03:57:29] encx264: encoding at constant RF 16.000000
[03:57:29] encx264: unparsed options: vbv-maxrate=2000:vbv-bufsize=1000:crf-max=25
x264 [info]: using SAR=32/27
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
x264 [info]: profile High, level 3.0
[03:57:29] sync: first pts is 2970
Encoding: task 1 of 1, 0.80 % (138.77 fps, avg 165.74 fps, ETA 00h16m55s)
@tchjunky Yeah, I now think this is a bug in transcode-video
and the encrypted DVD thing is a red herring. My apologies.
I'll try to fire up my Cygwin environment later tonight and see if I can reproduce this.
@tchjunky It's very suspicious that the diagnostic information, which should be the "bad" line in question, didn't print out after the second colon here:
transcode-video: invalid subtitle track information:
Which leads me to believe that the regular expression capturing the track data on line 95 or media.rb
somehow gets a blank line before the actual subtitle track information.
This is very likely another weird aspect of Ruby under Cygwin.
@tchjunky OK, I think there's a way to make the the audio and subtitle track parsing code more robust and more lenient. Which should fix this problem.
Good thing I had a long nap today. :)
You're a machine! Appreciate your help and all the work you've done on the transcoding scripts. A long nap and late night coding sounds like a great retirement. That and bourbon. I'll help test whenever you're ready!
@tchjunky Bourbon's not a bad idea at all. :)
I've got a patch working now. Not only will it (hopefully) fix your bug, but it should also fix issue #11 too.
So, I should have something for you to test in about a half hour. Stay tuned...
@tchjunky OK, I just push version 0.2.3. Just do a gem update
and try it out.
Thank you so much for filing this issue and trying to reproduce the problem with the old Bash scripts. That really helped a lot!
I'll close this now, but I'll re-open it if you tell me the problem is not fixed.
Back in business, and now get to try out the --quick flag. Cheers!
Problem
I'm getting an "invalid subtitle track information" error when attempting to transcode an MKV file that contains a subtitle track. In fact, this error is appearing for other MakeMKV rips that do not include subtitles. There are no issues when transcoding these files with the old bash scripts.
Software Versions
Command Output
Any ideas? Let me know if you need any more info or testing on my end.
Cheers! David