回答:
シェルスクリプトを記述して、タイトルごとにHandBrakeCLIを呼び出すことができます。
Linux(ソース):
$ for i in `seq 4`; do HandBrakeCLI --input /dev/dvd --title $i --preset Normal --output NameOfDisc_Title$i.mp4; done
Windows PowerShell:
for ($title=1; $title -le 4; $title++) {
&"C:\program files\handbrake\HandBrakeCLI.exe" --input D:\ --title $title --preset Normal --output "$title.mp4"
}
Grilseからの回答に基づいて:
このスクリプトは固定数のタイトルを使用しませんが、ハンドブレーキでそれらを決定できます。
#!/bin/bash
rawout=$(HandBrakeCLI -i /dev/dvd -t 0 2>&1 >/dev/null)
#read handbrake's stderr into variable
count=$(echo $rawout | grep -Eao "\\+ title [0-9]+:" | wc -l)
#parse the variable using grep to get the count
for i in $(seq $count)
do
HandBrakeCLI --input /dev/dvd --title $i --preset Normal --output $i.mp4
done
ちょっとした塩分を加えて、これはいくつかの章に分割するために思いついたPythonスクリプトです。番号は自動的に抽出されます。
ご了承ください:
DVDの場所をスクリプトの引数として使用して、次のPythonスクリプトを呼び出すだけです。
#!python
import os
import subprocess
import re
import sys
# Ugly but simple way to get first argument = folder with DVD
# We will get DVD name by removing all / and \
dvd = sys.argv[1]
dvd_name = re.sub(r'.*[/\\]', r'', dvd).rstrip('/').rstrip('\\')
s = subprocess.Popen(
f'HandBrakeCLI -i "{dvd}" -t 0', stdout=subprocess.PIPE, stderr=subprocess.STDOUT
)
count = 0
for line in s.stdout:
if re.search(rb"\+ title [0-9]+:", line):
count += 1
print(f'==Extracting {count} chapters from "{dvd}"==')
for i in range(1,count+1):
output = f"{dvd_name}_{i}.mp4"
cmd = f'HandBrakeCLI --input {dvd} --title {i} --preset Normal --output "{output}"'
log = f"encoding_{output}.log"
with open(log, 'wb') as f:
s = subprocess.Popen(cmd, stdout=f, stderr=subprocess.STDOUT)
s.communicate()
if not os.path.isfile(output):
print(f'ERROR during extraction of "{output}"!')
else:
print(f'Successfully extracted Chapter #{i} to "{output}"')
count=$(echo $rawout | grep -Eao "\\+ title [0-9]+:" | wc -l)
@ForestPhoenix の行は、最初の章が10秒未満の場合は機能しません。
これはコードの改善です:
rohausgabe=$(HandBrakeCLI -i "$iso" -t 0 2>&1 >/dev/null)
anzahl=$(echo $rohausgabe | grep -Eao "scan: DVD has [0-9]" | awk -F " " '{print $4}')
タスクをキューに追加できます
リンク2から
先に進み、使用中のタイトル、チャプター、またはソースを変更し、宛先ファイルの名前を変更してください。必要な設定を調整します。次に、ツールバーの[キューに追加]ボタンをクリックします。変換する動画のバッチ全体に対してこれらの手順を繰り返します。
コメントのいくつかは、以前のファイルの上書きに問題があったと言っています。そのため、適切な名前を付ける必要があります。実行したままにする前に、いくつかの作業を確認してください。