जवाबों:
सबटाइटल perl swiss आर्मी नाइफ (पेज के अंत तक स्क्रॉल करें)।
यहां आप अधिक विकल्प पा सकते हैं।
इसके अलावा, mplayer / mencoder में कुछ डंपएक्सएक्सएक्सयूब विकल्प हैं, जो काम कर सकते हैं। मैंने कभी यह कोशिश नहीं की, लेकिन आदमी को पढ़ना, यह काम करना चाहिए। उदाहरण:
-dumpmpsub (MPlayer only)
Convert the given subtitle (specified with the -sub option) to MPlayer's subtitle format, MPsub. Creates a dump.mpsub file in the current directory.
ओपन सोर्स प्रोग्राम सबटाइटल एडिट में कमांड लाइन कनवर्टर है और यह विंडोज और लिनक्स दोनों के लिए उपलब्ध है।
सिंटैक्स :
SubtitleEdit /convert "pattern" "name-of-format-without-spaces"
उदाहरण 1 :
SubtitleEdit /convert sub1.srt sami
परिणाम : sub1.srt को sub1.sub में SAMI प्रारूप में रूपांतरित करेगाउदाहरण 2 :
SubtitleEdit /convert *.srt adobeencore
परिणाम : सभी .srt फ़ाइलों को Adobe Encore फॉर्मेट में बदल देगा
के लिए लिनक्स कमांड लाइन थोड़ा लंबा होने की जरूरत है ...
सिंटैक्स :
mono SubtitleEdit.exe /convert "pattern" "name-of-format-without-spaces"
… लेकिन आसानी से स्क्रिप्ट में लपेटा जा सकता है।
libmono-winforms
GUI को काम करने के लिए स्थापित करने की आवश्यकता है (जैसा कि README में कहा गया है) ... शायद कुछ अतिरिक्त है जो CLI के काम करने के लिए आवश्यक है ... मुझे एक AttachConsole...
त्रुटि मिलती है । उबंटू 10.04 का उपयोग कर ...
.ass
सबरिप (.srt) में परिवर्तित कर दिया ... बस एक चीज जिसे मैंने नोट किया था: यह \r\n
सोर्स लाइन-एंडिंग होने पर भी (CRLF) लाइन एंडिंग का उत्पादन करता है \n
... लेकिन वह शायद ही कभी समस्या होगी और आसानी से तय हो जाएगी sed
यदि जरूरत है
वह क्या है जिसे आप वास्तव में रूपांतरित करना चाहते हैं? यदि यह सबटाइटल प्रारूपों के बीच है तो यह इस बात पर निर्भर करता है कि आप किन प्रारूपों के बारे में बात कर रहे हैं। जो बिटमैप आधारित हैं, उन्हें ओसीआर को पाठ प्रारूप में बदलना होगा और आमतौर पर ओसीआर की सटीकता की पुष्टि के लिए हमेशा उपयोगकर्ता इनपुट की आवश्यकता होती है
यदि यह सब पाठ प्रारूपों है तो Jubler या Aegisub काम का हो सकता है
फ़ाइल नाम को sed का उपयोग करके नाम बदलें
for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt" ; done
यदि आप .srt
कनवर्ट करने के बाद फ़ाइल को हटाना चाहते हैं, तो बाद में केवल एक rm कमांड जोड़ें।
for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt" && rm -f "$i" ; done
big.assassins.assured
(प्लस विस्तार) तो क्या होगा? आपका sed
नाम होगा bigassinsured
। sed
इस दोष के बिना और इसके बिना "${i%.ass}.srt"
:।
#!/bin/bash
file="*.srt" # Find file
ffmpeg -i "$file" "${file%.*}.vtt" # Convert file
rm "$file" # Remove file .srt from your dir