MKV 파일에서 자막을 추가하고 제거하는 방법?


28

여러 자막 옵션이있는 양질의 MKV 파일이 있습니다. 추가 자막 파일을 목록에 추가하고 싶습니다. OSX를 사용하고 있습니다.

일부 온라인 검색에서 비디오 변환기를 사용하고 기본적으로 영화를 새 파일로 다시 인코딩했습니다. 그것은 정말로 나에게 과잉 인 것 같습니다. 또한 이전 자막과 이미지 품질이 떨어질 수 있습니다.

답변:


41

자막 제거 :

mkvmerge -o output.mkv input.mkv -S # remove all subtitle tracks
mkvmerge -o output.mkv input.mkv -s 3,4 # remove tracks 3 and 4
mkvmerge -o output.mkv input.mkv -s '!3' # remove all subtitle tracks except 3
mkvmerge -i input.mkv # show track numbers

자막 추가 :

mkvmerge -o output.mkv input.mkv subs.srt
mkvmerge -o output.mkv input.mkv --language 0:ger --track-name 0:German subs.srt

자막 추출 :

mkvextract tracks input.mkv 3:subs.srt
for f in *.mkv; do
  sub=$(mkvmerge -i "$f" | awk '$4=="subtitles"{print;exit}')
  [[ $sub ]] || continue
  [[ $sub =~ S_TEXT/ASS ]] && ext=ass || ext=srt
  track=$(awk -F '[ :]' '{print $3}' <<< "$sub")
  mkvextract tracks "$f" "$track:${f%mkv}$ext"
done

mkvmerge 및 mkvextract는로 설치할 수 있습니다 brew install mkvtoolnix.


2
MKVMerge GUI는 Mac OS X에서 이미 사용 가능하지만 콘솔 팬에게는 좋은 방법입니다.
보라

자막을 추가하는 위의 명령은 파일을 재생할 때 자막을 "기본적으로 활성화 됨"으로 설정합니다. (이 플래그는 MKVMerge GUI를 사용하여 확인할 수 있습니다.)이를 피하려면을 사용하십시오 --default-track '0:0'.
Mathias Bynens

4

자막을 표시하는 기본 방법에는 두 가지가 있습니다. 비디오 자체로 픽셀을 인코딩 할 수 있습니다. 이것을 "하드 서빙"이라고합니다. 여기서 장점은 비디오 플레이어의 단순성입니다. 비디오 스트림 일뿐입니다. 단점은 비디오를 다시 인코딩해야하는데 시간이 걸리고 일부 충실도가 손실된다는 것입니다. 더 나은 번역을 얻으면 비디오의 픽셀입니다. 그리고 하나의 언어 만 가질 수 있습니다.

다소 좋은 점은 비디오 스트림과 분리 된 텍스트 파일을 갖는 "소프트 서빙 (softsubbing)"입니다. 자막 파일에는 여러 가지 형식이 있지만 기본적으로 "텍스트, 몇시 시작, 몇시 제거"를 기본으로합니다. 일부 화면의 색상 및 방향과 같은 추가 기능이 있습니다. 이것의 장점은 여러 언어 (DVD를 생각하고 여러 언어를 사용할 수 있음)를 가질 수 있고 파일에서 오타 등을 수정할 수 있다는 것입니다. 자막이 필요없는 경우 자막을 사용 중지하면됩니다.

Softsub는 별도의 파일 일 수 있습니다. 대부분의 플레이어는 기본 비디오와 동일한 이름 (다른 확장자)을 가진 자막을 자동으로 찾습니다. 또는 특정 컨테이너 파일 형식 (예 : MKV)에 포함 할 수 있습니다. MKV 파일 도구에 대한 MKVtoolnix (Mac 포트 있음)를 확인하십시오 . 다시 인코딩하지 않고 소프트 서브를 포함시킬 수 있습니다.

모든 플레이어가 모든 형식을 지원할 수있는 것은 아닙니다. 내 경험에 따르면 XBMC에는 SSA 파일에 문제가 있지만 훨씬 더 간단한 SRT 파일은 좋습니다. VLC는 플랫폼에서 지원되는 경우 무엇이든 재생할 수 있습니다.


1
좋은 대답이지만 일부 소프트 자막 (특히 DVD 자막)은 텍스트 기반이 아니라 비트 맵 기반이라는 점에 유의해야합니다. 주요 효과는 편집을 거의 불가능하게 만드는 것입니다. -_-
evilsoup

@evilsoup 감사합니다, 그것을 몰랐습니다.
Rich Homolka 2016 년

1
예, IDX + SUB VOBsub . 여기서 IDX는 텍스트 파일이지만 SUB에는 비트 맵이 포함되어 있습니다.
Karan

직접 다운로드 페이지에 대한 링크가 변경되었습니다.
보라

0

나는 이것이 오래된 질문이라는 것을 알고 user495470있으며 2013 년 현재 답변이 수락되었지만 질문의 일부는 파일에 자막을 추가하는 것에 관한 것이므로이 새로운 추가를 추가하고 싶었습니다.

기본적으로 수십 개의 .ass자막을 비슷한 이름의 MKV 파일로 병합해야 했기 때문에 한 번에이 명령 하나만 수행해도 자르지 않았습니다. 그래서이 간단한 Bash 스크립트를 작성하여 현재 디렉토리에서 .ass파일을 검색 한 다음 예상대로 병합합니다.

find -E . -maxdepth 1 -type f -iregex '.*\.(ASS|SRT)$' |\
  while read FILEPATH
  do
    DIRNAME=$(dirname "${FILEPATH}");
    BASENAME=$(basename "${FILEPATH}");
    FILENAME="${BASENAME%.*}";
    EXTENSION="${BASENAME##*.}"
    mkvmerge -o "/Users/jake/${FILENAME}"-NEW.mkv "${FILENAME}".mp4 --language 0:eng --track-name 0:English "${FILENAME}"."${EXTENSION}"
  done

물론,이 간단한 스크립트는 자막이 영어 인 것으로 가정하고이를 병합하지만 사용 요구에 따라 수동으로 조정할 수 있습니다. 자막과 MKV를 자동으로 병합하는 큰 문제는 다음과 같은 간단한 스크립트로 해결됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.