Mã nguồn mở chuyển đổi phụ đề dòng lệnh


Câu trả lời:


26

Bạn có thể thử FFmpeg (công cụ tuyệt vời!):

$ ffmpeg -i file.srt file.vtt

9

oneliner rất đơn giản và hiệu quả tôi sử dụng để chuyển đổi phụ đề:

for i in *.ass ; do ffmpeg -i "$i" "$i.srt" ; done

chỉ cần thay đổi asssrttheo nhu cầu của bạn.


7

Phụ đề con dao quân đội perl swiss (cuộn đến cuối trang).

Ở đây bạn có thể tìm thấy nhiều lựa chọn hơn.

Ngoài ra, mplayer / mencoder có một số tùy chọn dumpXXXsub, có thể hoạt động. Tôi chưa bao giờ thử điều này, nhưng đọc người đàn ông, nó sẽ làm việc. Thí dụ:

-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.

Quả thực điều này rất tiện lợi, thật đáng buồn mặc dù chỉ có ba định dạng khác nhau được hỗ trợ; .srt, .sub, .smi.
Johnas

Tôi đã kiểm tra Mplayer và Mencoder. Không làm cho nó làm việc mặc dù. Và nó chỉ hỗ trợ SRT, SMI, SUB và JACO. Một đề nghị tốt mặc dù, cảm ơn.
Johnas

Hoạt động tốt, cảm ơn! Ở đây: pastebin.com/T6DM9xbq là công cụ chuyển đổi của tôi dựa trên điều này với phát hiện tốc độ khung hình bằng cách sử dụng mplayer
Lukasz Frankowski

3

Chương trình mã nguồn mở Subtitle Edit có trình chuyển đổi dòng lệnh và có sẵn cho cả Windows và Linux.

Cú pháp :SubtitleEdit /convert "pattern" "name-of-format-without-spaces"

Ví dụ 1 : SubtitleEdit /convert sub1.srt sami
Kết quả : Sẽ chuyển đổi sub1.srt sang sub1.sub sang định dạng SAMI

Ví dụ 2 : SubtitleEdit /convert *.srt adobeencore
Kết quả : Sẽ chuyển đổi tất cả các tệp .srt sang định dạng Adobe Encore

Đối với Linux , dòng lệnh cần dài hơn một chút

Cú pháp :mono SubtitleEdit.exe /convert "pattern" "name-of-format-without-spaces"

Có thể dễ dàng được bao bọc trong một kịch bản.


GUI hoạt động, nhưng tôi đã gặp lỗi khi chạy từ dòng lệnh .. Tôi cần cài đặt libmono-winformsđể GUI hoạt động (như đã nêu trong README) ... Có thể cần thêm một cái gì đó để CLI hoạt động ... Tôi gặp AttachConsole...lỗi. sử dụng Ubuntu 10.04 ...
Peter.O

Điều này dường như được sửa trong phiên bản 3.2.3 - ít nhất là trên Ubuntu
Johanz

1
@Johanz: Cảm ơn. Phiên bản 3.2.3 hoạt động. Nó đã chuyển đổi .assthành SubRip (.srt) ... Chỉ có một điều tôi chưa biết: nó tạo ra \r\nkết thúc dòng (CRLF), ngay cả khi kết thúc dòng nguồn là \n... nhưng điều đó hiếm khi là một vấn đề và dễ dàng được khắc phục sednếu Cần được.
Peter.O

+1 vì đây là một công cụ chuyển đổi thực sự tốt và là một ứng dụng nguồn mở. Và nó có một giao diện dòng cmd.
dùng10607

1

Bạn muốn chuyển đổi chính xác là gì? Nếu nó nằm giữa các định dạng phụ đề thì nó phụ thuộc vào định dạng mà bạn đang nói đến. Những người dựa trên bitmap sẽ yêu cầu OCR chuyển đổi sang định dạng văn bản và thường luôn yêu cầu người dùng nhập liệu để xác nhận tính chính xác của OCR

Nếu đó là tất cả các định dạng văn bản sau đó Jubler hoặc Aegisub có thể được sử dụng


Phụ đề văn bản đơn giản. SRT, STL, SUB, PAC. Qua lại.
Johnas

@johnas - câu trả lời của tôi được cập nhật với một vài khả năng
Shevek

Cảm ơn Shevek, nhưng không có cái nào ở trên là dòng lệnh hoạt động. Mặc dù chúng sẽ hoàn hảo nếu tôi có thể sử dụng GUI.
Johnas

1

Tôi thấy rằng một số trình phát (ví dụ: trình phát video Google Drive) không thích .srt được tạo từ:

ffmpeg -i subtitles.ass <blah>.srt

hoặc là:

SubtitleEdit /convert subtitles.ass subrip

nhưng:

ffmpeg -i subtitles.ass -codec:s text subtitles.srt

... đã lừa tôi.


0

đổi tên tập tin bằng sed

for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt" ; done

nếu bạn muốn xóa .srttệp sau khi chuyển đổi, chỉ cần thêm lệnh rm sau đó.

for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt"  &&  rm -f "$i"  ; done

1
Nếu tên tệp là big.assassins.assured(cộng với phần mở rộng) thì sao? Bạn sedsẽ đặt tên cho nó bigassinsured. Không có sedvà không có lỗ hổng này : "${i%.ass}.srt".
Kamil Maciorowski

0
#!/bin/bash

file="*.srt"                     # Find file
ffmpeg -i "$file" "${file%.*}.vtt"   # Convert file  
rm "$file"                         # Remove file .srt from your dir

nếu bạn muốn chuyển đổi nhiều tập tin hơn bằng chương trình này trong vòng lặp for.


Nếu Ffmpeg hủy bỏ thì sao?
174140

ffmpeg là thư viện đa phương tiện mã nguồn mở.
Manoj kumar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.