डीवीडी से 50 एपिसोड को कैसे परिवर्तित करें। हैंडब्रेक के साथ .mp4, आसानी से?


12

मैंने इसमें 50 एपिसोड के साथ एक डीवीडी लोड की (प्रोग्राम से VIDEO_TS को चुना), अब जब मैं इसे हैंडब्रेक में खोलता हूं, तो यह वहां 50 "शीर्षक" दिखाता है। मैं 320x240 आउटपुट स्वरूप चुनता हूं और कनवर्ट करना शुरू करता हूं। फिर मैं अगले शीर्षक पर क्लिक करता हूं, फिर से 50 बार करें।

क्या इसे गति देने का कोई तरीका है?, क्योंकि यह मेरी सेटिंग्स को याद नहीं करता है जब मैं अगले शीर्षक पर क्लिक करता हूं। और मैं पूर्व निर्धारित करने की कोशिश की, लेकिन यह हर बार मैं presets सूची से इसे चुनने के लिए दुर्घटनाओं।

जवाबों:


12

आप प्रत्येक शीर्षक के लिए 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"
}

क्या इसके लिए कोई विकल्प नहीं है? उस स्क्रिप्ट स्क्रिप्ट उदाहरण के बारे में; यदि $ शीर्षक एक संख्या नहीं है तो मैं क्या करूं? मुझे यकीन नहीं है कि कोड क्या करता है। समझाने की परवाह?
रूकी

1
GUI विकल्प: हाँ वहाँ है: कतार में जोड़ें -> सभी जोड़ें। हालाँकि, इसे (प्रायोगिक) के रूप में चिह्नित किया गया है और जब मैंने इसे आज़माया तो यह काम नहीं किया।
२13

$ शीर्षक संख्या नहीं: $ शीर्षक हमेशा एक संख्या होगी। डीवीडी का काम कैसा है। स्पष्टीकरण: ठीक है, यह एक फॉर-लूप है जो 4 में से 1 से गिना जाता है, और प्रत्येक गणना के लिए, यह कुछ मापदंडों के साथ हैंडब्रेकसीएलआई निष्पादित करता है। मापदंडों का क्या अर्थ है यह देखने के लिए "हैंडब्रेकसीएलआई। Exe-help" देखें।
Grilse

निश्चित नहीं कि आप और क्या जानना चाहते हैं। कुछ विशिष्ट पूछें और मैं जवाब दूंगा।
Grilse

धन्यवाद, अब मैं इसे बेहतर समझता हूं। तो इसके सभी कमांडलाइन मापदंडों के बारे में, मैं ऐसा कर सकता हूं!
रूकी

3

ग्रिल से उत्तर के आधार पर:

यह स्क्रिप्ट निश्चित संख्या में शीर्षकों का उपयोग नहीं करती है, लेकिन हैंडब्रेक उन्हें निर्धारित करती है।

#!/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

यह ध्यान देने योग्य है कि यदि आप चाहते हैं कि गणना मूल्य सही हो, तो आपको --min-period 0 से HandBrakeCLI पास करना होगा, अन्यथा आप कुछ डीवीडी पर कम आएंगे। उदाहरण के लिए, मेरे परीक्षण डीवीडी में 10 दूसरा ट्रैक 1 है जिसे अंतिम आउटपुट में अनदेखा किया जाएगा।
कैथार

2

नमक के अपने छोटे से दाने को जोड़ना, यह पायथन लिपि है जिसे मैं कई अध्यायों में विभाजित करने के लिए आया था। संख्या को स्वचालित रूप से निकाला जाता है।

ध्यान दें कि:

  1. आपको हैंडब्रेक सीएलआई की जरूरत है (वर्तमान में इस पते पर उपलब्ध है: https://handbrake.fr/downloads2.php )
  2. आपको अपने PATH में Handbrake CLI का इंस्टॉलेशन फोल्डर रखना होगा

आपको बस स्क्रिप्ट के तर्क के रूप में डीवीडी के स्थान के साथ निम्नलिखित पायथन स्क्रिप्ट को कॉल करने की आवश्यकता है।

#!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}"')

0

सीएलआई के माध्यम से लिनक्स उबंटू में फ़ाइलों को निकालना महान काम किया। नीचे दी गई लाइन का उपयोग मैंने MPEG-4 और गुणवत्ता को लागू करने के लिए थोड़ा प्रवर्धन के साथ दिए गए वाक्यविन्यास को दोहराया। यदि उपशीर्षक की आवश्यकता है, तो मेरा मानना ​​है कि कमांड लाइन (सीएलआई) के मापदंडों और तर्कों को विस्तारित करने की आवश्यकता होगी।

patty@patty:~$ for i in `seq 4`; do HandBrakeCLI -i /media/patty/DVDTITLE -t $i -o DVDTITLE_Title$i.mp4 -e x264 -q 18; done

0

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}')

1
सुपरयुसर में आपका स्वागत है। कृपया इस साइट का अधिकतम लाभ उठाने के लिए superuser.com/Tour पर दौरा करें। इस उत्तर के रूप में, मेरा सुझाव है कि जब प्रश्न अंग्रेजी में हो, तो क्या आप कृपया अंग्रेजी में उत्तर दे सकते हैं? मैं देख रहा हूँ कि उसके बाद आपने जो पहली कमांड लिखी थी -> वह काम नहीं करता है जब पहला आइटम 10 सेकंड से कम हो।! फिर आपने दिखाया कि "बेटर" क्या है
एसडीसोलर

@SDsolar: मैंने अनुवाद करने की कोशिश की क्योंकि यह उत्तर रचनात्मक था। मैंने 14 साल पहले जर्मन का अध्ययन बंद कर दिया था, इसलिए मुझे उम्मीद है कि मैंने गलती नहीं की :)
जीन-फ्रेंकोइस टी।

-1

आप कार्यों को कतार में जोड़ सकते हैं

लिंक 2 से

बस आगे बढ़ें और शीर्षक, अध्याय या स्रोत को उपयोग में बदलें, और गंतव्य फ़ाइल का नाम बदलना सुनिश्चित करें। अपनी मनचाही सेटिंग्स को टवीक करें। फिर टूलबार पर "कतार में जोड़ें" बटन पर क्लिक करें। जिन वीडियो को आप कनवर्ट करना चाहते हैं, उनके लिए इन चरणों को दोहराएं।

कुछ टिप्पणियों का कहना है कि उन्हें पिछली फ़ाइल को अधिलेखित करने में समस्या हो रही थी। इसलिए आपको यह सुनिश्चित करना होगा कि आप उन्हें ठीक से नाम दें। इसे चलाने से पहले कुछ काम सुनिश्चित करें।


कतार में जोड़ने से पुनरावृत्ति की समस्या दूर नहीं होती है: मुझे अगले शीर्षक का चयन करने के लिए क्लिक करना होगा, संकल्प बदलें, "कतार जोड़ें" पर क्लिक करें, दोहराएं। मैं जो चाहता हूं वह है कि एक ही बार में एक ही सेटिंग के साथ सभी शीर्षक परिवर्तित करें। यह केवल अध्यायों के
रूकी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.