Thêm hạt muối nhỏ của tôi, đây là kịch bản Python tôi đã nghĩ ra để chia thành nhiều chương. Số được trích xuất tự động.
Lưu ý rằng:
- Bạn cần Handbrake CLI (hiện có sẵn tại địa chỉ này: https://handbrake.fr/doads2.php )
- Bạn cần có thư mục cài đặt của Handbrake CLI trong PATH của bạn
Bạn chỉ cần gọi tập lệnh Python sau với vị trí của DVD làm đối số của tập lệnh.
#!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}"')