오픈 소스 명령 행 자막 변환기


답변:


26

FFmpeg 시도해보십시오 (좋은 도구!) :

$ ffmpeg -i file.srt file.vtt

9

자막을 변환하는 데 사용하는 매우 간단하고 효과적인 oneliner :

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

단지 변경 asssrt필요에 따라.


7

자막 perl swiss army knife (페이지 끝으로 스크롤).

여기에서 당신은 더 많은 옵션을 찾을 수 있습니다.

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

실제로 슬프게도 세 가지 형식 만 지원되지만 편리합니다. .srt, .sub, .smi.
Johnas

Mplayer와 Mencoder를 확인했습니다. 그래도 작동시키지 못했습니다. 또한 SRT, SMI, SUB 및 JACO 만 지원합니다. 그래도 좋은 제안입니다. 감사합니다.
Johnas

잘 작동합니다, 감사합니다! 여기 : pastebin.com/T6DM9xbq는 프레임 속도 감지 사용에 mplayer와이를 바탕 나의 컨버터입니다
루카스 프란코브스키

3

오픈 소스 프로그램 인 Subtitle Edit 에는 명령 줄 변환기가 있으며 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 형식으로 변환

들어 리눅스 명령 줄은 약간 길게 할 필요가 ...

구문 :mono SubtitleEdit.exe /convert "pattern" "name-of-format-without-spaces"

…하지만 스크립트로 쉽게 감쌀 수 있습니다.


GUI는 작동하지만 명령 행에서 실행할 때 오류가 발생했습니다.. libmono-winformsGUI가 작동하려면 README에 설명 된대로 설치해야 했습니다 ... CLI가 작동하는 데 필요한 추가 사항 이있을 있습니다. ... AttachConsole...오류가 발생합니다. Ubuntu 10.04 사용 ...
Peter.O

이것은 버전 3.2.3에서 수정 된 것 같습니다 – 적어도 우분투에서
Johanz

1
@Johanz : 감사합니다. 버전 3.2.3이 작동합니다. 그것은 변환 .ass넣으면 SubRip (.SRT) ... 내가 notieced 그냥 한 가지로 : 그것은 생산 \r\n소스 라인 끝은에도 (CRLF) 줄 끝에, \n...하지만 그건 거의 문제가 없을 것입니다 쉽게 고정되는 sed경우 필요합니다.
Peter.O

이것은 정말 좋은 변환기이며 오픈 소스 응용 프로그램이므로 +1입니다. 그리고 cmd 라인 인터페이스가 있습니다.
user10607

1

정확히 변환하고 싶은 것이 무엇입니까? 자막 형식 사이에 있다면 대화 형식에 따라 다릅니다. 비트 맵 기반 인 경우 텍스트 형식으로 변환하려면 OCR이 필요하며 일반적으로 OCR의 정확성을 확인하려면 항상 사용자 입력이 필요합니다.

모든 텍스트 형식이면 Jubler 또는 Aegisub 를 사용할 수 있습니다


간단한 텍스트 자막. SRT, STL, SUB, PAC. 이리저리.
Johnas

@ johnas-내 대답은 몇 가지 가능성으로 업데이트되었습니다
Shevek

감사합니다 Shevek, 그러나 위의 어느 것도 명령 줄 작동이 아닙니다. GUI를 사용할 수 있다면 완벽했을 것입니다.
Johnas

1

일부 플레이어 (예 : Google 드라이브 비디오 플레이어)는 다음에서 생성 된 .srt를 좋아하지 않습니다.

ffmpeg -i subtitles.ass <blah>.srt

또는:

SubtitleEdit /convert subtitles.ass subrip

그러나:

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

... 나에게 속임수를 썼다.


0

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

1
파일 이름이 big.assassins.assured확장자 (확장자) 인 경우 어떻게합니까? 당신의 sed의지는 그것을 지명합니다 bigassinsured. 없이 sed이 결함없이 : "${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

for 루프 에서이 프로그램을 사용하여 더 많은 파일을 변환하려면.


Ffmpeg가 중단되면 어떻게됩니까?
174140

ffmpeg는 오픈 소스 멀티미디어 라이브러리입니다.
Manoj kumar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.