มีโอเพนซอร์ส, บรรทัดคำสั่ง, ตัวแปลงคำบรรยาย - ควรเป็น Linux หรือไม่?
มีโอเพนซอร์ส, บรรทัดคำสั่ง, ตัวแปลงคำบรรยาย - ควรเป็น Linux หรือไม่?
คำตอบ:
คุณสามารถลอง FFmpeg (เครื่องมือยอดเยี่ยม!):
$ ffmpeg -i file.srt file.vtt
oneliner ง่ายมากและมีประสิทธิภาพฉันใช้ในการแปลงคำบรรยาย:
for i in *.ass ; do ffmpeg -i "$i" "$i.srt" ; done
เพียงแค่เปลี่ยนass
และsrt
ตามความต้องการของคุณ
คำบรรยาย perl swiss Army swiss (เลื่อนไปที่ส่วนท้ายของหน้า)
ที่นี่คุณสามารถค้นหาตัวเลือกเพิ่มเติม
นอกจากนี้mplayer / mencoderมีตัวเลือก dumpXXXsub บางตัวซึ่งอาจใช้งานได้ ฉันไม่เคยลองสิ่งนี้ แต่การอ่านผู้ชายมันควรจะได้ผล ตัวอย่าง:
-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.
โปรแกรมโอเพ่นซอร์สคำบรรยายแก้ไขมีตัวแปลงบรรทัดคำสั่งและสามารถใช้ได้กับทั้ง Windows และ Linux
ไวยากรณ์ :
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
สำหรับLinuxบรรทัดคำสั่งจำเป็นต้องยาวขึ้นเล็กน้อย ...
ไวยากรณ์ :
mono SubtitleEdit.exe /convert "pattern" "name-of-format-without-spaces"
… แต่สามารถห่อเป็นสคริปต์ได้อย่างง่ายดาย
libmono-winforms
เพื่อให้ GUI ทำงาน (ตามที่ระบุไว้ใน README) ... อาจมีบางสิ่งที่พิเศษซึ่งจำเป็นสำหรับ CLI ในการทำงาน ... ฉันได้รับAttachConsole...
ข้อผิดพลาด ใช้ Ubuntu 10.04 ...
.ass
SubRip (.srt) ... มีเพียงสิ่งเดียวที่ฉันแจ้งไว้: มันสร้าง\r\n
จุดสิ้นสุดของบรรทัด (CRLF) แม้เมื่อจุดสิ้นสุดของแหล่งที่มาคือ\n
... แต่นั่นไม่ค่อยจะมีปัญหาและแก้ไขได้ง่ายsed
หาก ต้องเป็น
คุณต้องการแปลงอะไร หากอยู่ระหว่างรูปแบบคำบรรยายมันจะขึ้นอยู่กับรูปแบบที่คุณกำลังพูดถึง ที่เป็นบิตแมปที่ใช้จะต้องมี OCR เพื่อแปลงเป็นรูปแบบข้อความและโดยทั่วไปต้องการให้ผู้ใช้ป้อนข้อมูลเพื่อยืนยันความถูกต้องของ OCR
ฉันพบว่าผู้เล่นบางคน (เช่นเครื่องเล่นวิดีโอ Google Drive) ไม่ชอบ. srt ที่สร้างขึ้นจาก:
ffmpeg -i subtitles.ass <blah>.srt
หรือ:
SubtitleEdit /convert subtitles.ass subrip
แต่:
ffmpeg -i subtitles.ass -codec:s text subtitles.srt
... ทำกลอุบายให้ฉัน
เปลี่ยนชื่อชื่อไฟล์โดยใช้ 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