답변:
각 타이틀에 대해 HandBrakeCLI 를 호출하는 쉘 스크립트를 작성할 수 있습니다 .
리눅스 ( 소스 ) :
$ 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)
첫 번째 챕터가 10 초보다 작 으면 @ForestPhoenix 의 라인 이 작동하지 않습니다.
이것은 코드의 개선입니다.
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에서
계속해서 제목, 챕터 또는 사용중인 소스를 변경하고 대상 파일의 이름을 바꾸십시오. 원하는 설정을 조정하십시오. 그런 다음 툴바에서 "대기열에 추가"버튼을 클릭하십시오. 변환하려는 전체 비디오 배치에 대해이 단계를 반복하십시오.
일부 의견에서는 이전 파일을 덮어 쓰는 데 문제가 있다고 말합니다. 따라서 이름을 올바르게 지정해야합니다. 실행하기 전에 몇 가지 작업을 수행하십시오.