ffmpeg를 사용하여 비디오에서 자막을 추출하는 방법은 무엇입니까?


34

비디오에서 자막을 .srt파일 로 추출하려고 하는데 다음 명령을 사용했습니다.

FFMPEG -i mytestmovie.mkv -vn -an -codec:s:0.1 srt sub.srt

그러나 인식 할 수없는 옵션으로 오류가 발생 했으므로 codec:s:0:1 정확한 명령과 .srt비디오에서 자막을 추출하는 방법을 알려 주실 수 있습니까?


umair : u 명령 프롬프트에서 알려주세요
vijay

나는 같은 문제를 가지고있다. 이것이 결국 작동하게 했습니까?
Maxime Labelle

답변:


51

단순한:

ffmpeg -i Movie.mkv -map 0:s:0 subs.srt
  • -i : 입력 파일 URL / 경로.
  • -map : 하나 이상의 입력 스트림을 출력 파일의 소스로 지정합니다.
  • s : 0 : 자막 스트림을 선택합니다.

2
이것은 자막이 포함 된 MP4 파일로 나를 위해 일했습니다.
Rubens Mariuzzo

11
첫 번째 자막 트랙이 다운로드됩니다. 여러 개가있는 경우 0:s:1, 두 번째 0:s:2것을 다운로드하고 세 번째를 다운로드하는 등을 사용하십시오.
Fabien Snauwaert

5
@ jm3 파일에서 모든 자막 스트림을 자동으로 추출하여 언어 식별자 (예 : eng, fre, dut 등)로 명명하는 방법을 알고 있습니까?
Fr.

큰 MKV 컨테이너 (~ 4GB)에서 추출 할 때 왜 그렇게 느려 집니까?
user25

한 번에 더 많은 자막을 추출하려면 -map각 파일 의 매개 변수 를 복제해야 합니다. 또한 -c copy파일을 처리하지 않고 파일을 추출하도록 포함하십시오 ffmpeg -i Movie.mkv -c copy -map 0:s:0 subs.01.srt -c copy -map 0:s:1 subs.02.srt. 어쨌든 ffmpeg는 자막 스트림의 모든 부분을 찾으려면 전체 비디오 파일을 읽어야하므로 시간이 오래 걸립니다.
Radek Pech

8

-codec:s:0:1부정확하다. 만약 사용한다면 -codec:s:0그때는 FFmpeg를 사용할 경우, 출력으로 전달되는 제 자막 스트림에 대한 언급 코덱을 사용 -codec:s:1다음은 두 번째 자막 스트림 등을 위해 사용할 것이다

당신은 또한 사용할 수있는 -codec:s선택 모든 출력 자막 스트림을, 또는 -codec:2관계없이 무엇인지, 세 번째 출력 스트림을 선택할 수 있습니다.

-map옵션이 다른 방식으로 작동 하기 때문에 혼란 스러울 수 있습니다 . 선택한 스트림의 입력을 선택해야합니다. (따라서 -map 0:s:0첫 번째 입력에서 첫 번째 자막 스트림을 가져 와서 출력에 공급합니다). 그러나 -map입력에서 가져 오려는 스트림을 선택하기위한 것입니다. 반면에 스트림 매핑을 사용하는 대부분의 다른 옵션은 스트림이 선택된 후 스트림에서 사용하기위한 것입니다 (따라서 출력에 전달 될 때 입력 파일을 지정할 필요가 없습니다).


evilsoup : i 다음 명령을 사용합니다 : E : \ FFMpeg_Latest> ffmpeg -i E : \ Routine \ routine.mkv -vn -an -map 0 : s : 0 srt E : \ Routine \ sub.srt 'srt'에 적합한 출력 형식을 찾을 수 없습니다. 비디오에서 자막을 추출하는 명령을 알려 주시겠습니까?
vijay

2
시도 : ffmpeg -i E:\Routine\routine.mkv -map 0:s:0 E:\Routine\sub.srt(ffmpeg는 출력 파일 이름에서 srt 자막을 원한다는 것을 감지해야합니다)
evilsoup

내가 사용한 : ffmpeg -i film.mp4 -vn -an -codec:s srt film.srt모든 자막을 srt 파일로 복사해야합니다.
스튜어트

@Stuart 모든 자막을 추출하지는 않습니다
user25

1
@evilsoup은 -codec:s동일 -codec:s:0은 모든 자막을 선택하지 않도록 ... 먼저 텍스트 트랙 추출합니다
USER25
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.