그래서 저는 팬이 만든 무료 다운로드를 다운로드했습니다.스타트렉은 계속된다블루레이 ISO에피소드 1~3휴대폰에서 시청할 수 있도록 FHD 1920x1080을 SD 960x540으로 변환하려고 합니다.
ffmpeg -canvas_size 960x540 \
-i /media/STC_VOL1_BR/BDMV/STREAM/00000.m2ts \
-map_metadata -1 \
-c:v libx264 -map 0:0 -strict -2 -r 24 -s 960x540 \
-c:a libmp3lame -map 0:1 -b:a 384K \
-metadata:s:s:0 language=EN -c:s dvdsub -map 0:2 \
/media/Videos/Star\ Trek\ Continues/S01E01\ Pilgrim\ Of\ Eternity.mkv
하지만 변환된 mkv를 몇 초 동안 본 후에 자막은 다음과 같습니다.
- 겹쳐서 읽을 수 없음
- 약간 크다(문제 없음)
- 화면 오른쪽과 아래쪽으로 이동했습니다.
내가 도대체 뭘 잘못하고있는 겁니까?
참고 1:저는 자막만 다룬 적이 srt
있고 dvdsub가 이미지라는 것을 알고 있기 때문에 canvas_size
매개변수가 도움이 될 것이라고 생각했지만 별 차이가 없습니다.
노트 2:예, 실제로는 순수한 우분투 OS 질문은 아니지만 계속해서 질문하겠습니다.video.se얻지 못함현상금이 있어도 관심을 가져라누군가가 비디오 변환을 수행하고 동일한 상황에 직면했다면 여기서 시도해 보십시오.
답변1
기술적으로는가장 깨끗한이 자막을 보면 다음과 같습니다.
- 자막 추출
- 즐겨 사용하는 OCR 응용 프로그램을 사용하여 텍스트로 변환하세요.
- 텍스트를 주의 깊게 검토하고 편집하세요.
- 선택한 크기, 색상, 방향 및 형식으로 미디어 스트림에 다시 굽습니다.
이는 규모가 크고 시간이 많이 소요되는 작업입니다.예전에 개인적으로 했던 일이 있는데하지만 아마도지나침이 경우.
그만큼더 나은옵션은 단순히 FFmpeg 옵션 -fix_sub_duration
(배치됨) 을 추가하는 것입니다.~ 전에입력 파일) 그러면 아래에 설명된 것처럼 이중으로 표시된 자막이 수정되어 자막을 쉽게 읽을 수 있게 됩니다.
옵션 에 대한 자세한 내용은 -fix_sub_duration
FFmpeg-all 매뉴얼 페이지에서 찾을 수 있지만 여기에는 이러한 세부 정보를 자유롭게 인용했습니다.
-fix_sub_duration
자막 길이를 수정하세요. 각 자막에 대해 동일한 스트림의 다음 패킷을 기다리고 첫 번째 패킷의 지속 시간을 조정하여 중복을 방지합니다. 이는 일부 자막 코덱, 특히 DVB 자막의 경우 필요합니다. 원본 패킷의 지속 시간은 대략적인 추정치일 뿐이고 끝은 실제로 빈 자막 프레임으로 표시되기 때문입니다. 필요한 경우 이 옵션을 사용하지 않으면 비단조적인 타임스탬프로 인해 기간이 과장되거나 다중화 오류가 발생할 수 있습니다.
이 옵션은 다음 자막 패킷이 디코딩될 때까지 모든 데이터의 출력을 지연시킵니다. 메모리 소비와 대기 시간이 많이 늘어날 수 있습니다.
당신은 이것이첫 번째고급 자막 옵션 중두번째-canvas_size
당신이 이미 사용했던 것 입니다 ...