Hi again,

So I've had time to digest the inputs I've received so far and have my next 
question. Just to recap, I have a decrypted ripped DVD (just the main movie was 
extracted, no menus, no compression etc.) into a folder called 
"uncompressed.dvdmedia" that contains:
ls -R uncompressed.dvdmedia

AUDIO_TS        Info.json       VIDEO_TS

uncompressed.dvdmedia/AUDIO_TS:

uncompressed.dvdmedia/VIDEO_TS:
VIDEO_TS.IFO    VTS_01_0.IFO    VTS_01_1.VOB    VTS_01_2.VOB

 I converted uncompressed.dvdmedia to an MKV file named "uncompressed.mkv" 
using MakeMKV. Here is the relevant English subtitle stream info for that file, 
and note that stream also contains embedded tags for the parts that are forced 
subtitles:

ffmpeg -i uncompressed.mkv
...
  Stream #0:5(eng): Subtitle: dvd_subtitle, 720x480 (default)
    Metadata:
      BPS-eng         : 3503
      DURATION-eng    : 00:46:28.375077777
      NUMBER_OF_FRAMES-eng: 372
      NUMBER_OF_BYTES-eng: 1221288
      SOURCE_ID-eng   : 0120BD
      _STATISTICS_WRITING_APP-eng: MakeMKV v1.16.7 darwin(x64-release)
      _STATISTICS_WRITING_DATE_UTC-eng: 2022-04-28 03:45:22
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES 
SOURCE_ID

When I do the following command I end up with a movie that displays ONLY the 
forced English subtitles by default (which is exactly what I want):

ffmpeg -forced_subs_only 1 \
-i uncompressed.mkv \
-vsync cfr \
-map 0:0 -c:v hevc_videotoolbox -disposition:v default \
-map 0:1 -c:a:0 copy -disposition:a:0 default \
-map 0:5 -c:s:0 copy -disposition:s:0 default \
-default_mode passthrough \
compressed.mkv

However, I don't want to have to first convert my movie to an MKV because that 
process is prone to introducing A/V sync issues. I was instructed by Nicolas 
George to use dvd2concat and then operate on that output. So here's what I did:

dvd2concat uncompressed.dvdmedia > file.concat

Here's the streams that contains:
ffmpeg -analyzeduration 500M -probesize 500M -safe 0 -f concat 
-protocol_whitelist concat,ffconcat,file,subfile -i file.concat
...
  Stream #0:0: Video: mpeg2video (Main), yuv420p(tv, progressive), 720x480 [SAR 
32:27 DAR 16:9], 29.50 fps, 59.94 tbr, 90k tbn
    Side data:
      cpb: bitrate max/min/avg: 7600000/0/0 buffer size: 1835008 vbv_delay: N/A
  Stream #0:1(en): Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
  Stream #0:2(fr): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
  Stream #0:3(pt): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
  Stream #0:4(en): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
  Stream #0:5(en): Subtitle: dvd_subtitle, 720x480
  Stream #0:6(en): Subtitle: dvd_subtitle, 720x480
  Stream #0:7(fr): Subtitle: dvd_subtitle, 720x480
  Stream #0:8(pt): Subtitle: dvd_subtitle, 720x480
  Stream #0:9(es): Subtitle: dvd_subtitle, 720x480
  Stream #0:10(en): Subtitle: dvd_subtitle, 720x480
  Stream #0:11(pt): Subtitle: dvd_subtitle, 720x480
  Stream #0:12(es): Subtitle: dvd_subtitle, 720x480

I have confirmed stream 0:5 is still the correct English subtitle track, so I 
then did:

ffmpeg -analyzeduration 500M -probesize 500M -forced_subs_only 1 \
-safe 0 -f concat -protocol_whitelist concat,ffconcat,file,subfile -i 
file.concat \
-vsync cfr \
-map 0:0 -c:v hevc_videotoolbox -disposition:v default \
-map 0:1 -c:a:0 copy -disposition:a:0 default \
-map 0:5 -c:s:0 copy -disposition:s:0 default \
-default_mode passthrough \
compressed.mkv

However, when I play that compressed.mkv movie I see English subtitles for 
EVERYTHING and not for only the forced parts i.e. when only a foreign language 
is being spoken.

Could somebody please help me doing this last part so that my final subtitle 
track only contains the forced subtitles like it does when I start with an MKV 
instead. Thanks!

Regards,

Mick

_______________________________________________
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to