]> piware.de Git - bin.git/commitdiff
convert_dvd.sh: Fixes
authorMartin Pitt <martin@piware.de>
Wed, 11 Feb 2026 08:06:21 +0000 (09:06 +0100)
committerMartin Pitt <martin@piware.de>
Wed, 11 Feb 2026 08:06:21 +0000 (09:06 +0100)
convert_dvd.sh

index 24c55125c9dd505c077dc5f56dd24badc6e55d3c..54bbb70d0b4eb532d151cac102179ee4571450fa 100755 (executable)
@@ -25,19 +25,19 @@ else
 fi
 
 # Parse lsdvd output and process titles
-if [ -n "$SPECIFIC_TITLE" ]; then
-    echo "Extracting title $SPECIFIC_TITLE..."
-    echo "Title: $SPECIFIC_TITLE, Length: 99:99:99.999"
-else
-    echo "Scanning DVD..."
-    lsdvd "$DVD_DEVICE"
-fi | grep "^Title:" | while read -r line; do
+echo "Scanning DVD..."
+lsdvd "$DVD_DEVICE" | grep "^Title:" | while read -r line; do
     # Extract title number and duration
     title_num=$(echo "$line" | sed 's/Title: \([0-9]*\),.*/\1/')
     duration=$(echo "$line" | sed 's/.*Length: \([0-9:\.]*\).*/\1/')
 
+    # Skip if specific title requested and this isn't it
+    if [ -n "$SPECIFIC_TITLE" ] && [ "$title_num" != "$SPECIFIC_TITLE" ]; then
+        continue
+    fi
+
     # Convert duration to seconds (HH:MM:SS.mmm format)
-    IFS=':.' read -r hours minutes seconds milliseconds <<< "$duration"
+    IFS=':.' read -r hours minutes seconds _milliseconds <<< "$duration"
     total_seconds=$((10#$hours * 3600 + 10#$minutes * 60 + 10#$seconds))
 
     echo "Title $title_num: $duration ($total_seconds seconds)"
@@ -62,9 +62,9 @@ fi | grep "^Title:" | while read -r line; do
     echo "  -> Converting to: $output_file"
 
     # Convert the title
-    mplayer dvd://$title_num -dvd-device "$DVD_DEVICE" -dumpstream -dumpfile /dev/stdout | \
-    ffmpeg -i pipe:0 \
-        -map 0:v:0 -map 0:a:0 -map 0:a:2 -map 0:#0x20 -map 0:#0x22 \
+    mplayer "dvd://$title_num" -dvd-device "$DVD_DEVICE" -dumpstream -dumpfile /dev/stdout < /dev/null | \
+    nice ffmpeg -i pipe:0 \
+        -map 0:v:0 -map 0:a:0 -map 0:a:2 -map 0:#0x20? -map 0:#0x22? \
         -c:v libx264 -preset medium -crf 23 \
         -c:a aac -ac 2 -b:a 128k \
         -c:s dvdsub \