MKV 비디오를 Windows의 iOS 장치와 호환되는 무손실 MP4 비디오로 변환하는 방법은 무엇입니까?


10

FFmpeg (Windows)를 처음 사용하는데 도움이 필요합니다.

가능한 한 품질이 거의 떨어지지 않으면 서 MKV를 MP4로 변환하고 싶습니다. MKV는 MakeMKV로 제작되며 DTS 사운드 트랙을 포함합니다. 그들은 무손실입니다. 변환하려는 이유는 iPad 및 Apple TV로 스트리밍 할 계획이기 때문입니다. iPad는 DTS 및 MKV를 지원하지 않습니다. MKV는 DVD와 Blu-Ray입니다. MKV에는 비디오, 사운드 트랙 및 자막이 포함되어 있습니다.

나는 이것을 시도했지만 DTS 사운드 트랙으로 인해 소리가 들리지 않습니다.

ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4

아무도 나를 도울 수 있습니까?

어떤 코덱을 사용해야합니까? MP4는 Apple에 가장 적합합니까?


1
타겟팅하려는 특정 iPad 및 Apple TV 버전이 있습니까? 아니면 모두 지원 하시겠습니까?
llogan

2
참고 : MP4는 코덱이 아닙니다. 파일 형식 일뿐입니다 ( "컨테이너").
slhck

최신 iPod Air가 있습니다. 최신 Apple TV가 있습니다. MP4는 컨테이너가 아니라 컨테이너라는 것을 알고 있습니다 :)
Striky

일반적인 입력 중 하나에 대한 정보를 포함하십시오. 콘솔 출력 ffmpeg -i input.mkv이 충분합니다.
llogan

ffmpeg -i input.mkv -c : v copy -c : a copy output.mp4를 시도했습니다. Apple이 DTS를 재생하지 않기 때문에 재생되었지만 소리가 나지 않습니다. ffmpeg -i input.mkv -strict Experimental -c : v copy -c : a aac -b : a 192k -q : a 6 output.mp4를 시도했지만 영화 (비디오 및 사운드 모두)가 부드럽게 재생되지 않았습니다. iPad Air (스트림 및 다운로드)
Striky

답변:


22

MP4는 실제로 Apple 장치 및 소프트웨어에 가장 적합한 형식입니다. DTS도 지원되지 않습니다. 많은 MP4 비디오 파일에는 두 개의 오디오 트랙 (하나는 DTS와 하나는 AAC)이 있습니다.

사용 가능한 여러 인코더가 있으며 모두 ffmpeg wiki 에 문서화되어 있습니다. 사용 가능한 코덱은 ffmpeg가 컴파일 된 방법에 따라 다릅니다. libfdk_aac 는 최상의 결과를 제공하지만이 코덱이 무료이기 때문에 항상 사용할 수있는 것은 아닙니다.

당신이 시도 할 수있는 것들 (내가 생각한 품질의 순서대로 배치합니다. 최고의 우선)

ffmpeg -i input.mkv -c:v copy -c:a libfdk_aac -b:a 128k output.mp4
ffmpeg -i input.mkv -strict experimental -c:v copy -c:a aac -b:a 192k output.mp4
ffmpeg -i input.mkv -c:v copy -c:a libfaac -b:a 192k output.mp4

DTS 트랙도 유지하려면 -map플래그를 사용하십시오 .

OP에 직접 사용하지는 않지만 OS X 프로그램 서브 러 는이 프로세스를 매우 쉽게 만듭니다.

편집 : 의견 tl; dr? OP는 다음 명령으로 문제를 해결했습니다.

ffmpeg -i input.mkv -strict experimental -map 0:0 -map 0:1 -map 0:2 -map 0:3 -c:v copy -c:a aac -b:a 384 -c:s copy output.mp4

팁 : -c:s copy자막이 작동하지 않으면을 사용해보십시오 -c:s mov_text.
여러 번 저를 구했습니다.


내부 AAC 인코더의 VBR 모드가 의도 한대로 작동하지 않는다고 생각합니다. 내가 마지막으로 확인했을 때 고장났다. CBR을 더 잘 사용하고 다른 인코더 ( libfdklibfaac)에 VBR을 사용하십시오.
slhck

또한 libfdk_aac이 최상의 결과를 제공한다는 것을 읽었습니다. Windows 용 32 비트 정적 버전 (git-9722a6a (2014-05-24))을 다운로드했습니다. libfdk 코덱이 있는지 어떻게 확인할 수 있습니까? 편집 : 알 수없는 인코더 'libfdk_aac'을 얻습니다. 여기에서 다운로드 할 수 있습니까, 아니면 거의 좋은 오디오 코덱이 있습니까?
Striky

ffmpeg -i input.mkv -c : v copy -c : a libfdk_aac -b : a 128k output.mp4 및 ffmpeg -i input.mkv -c : v copy -c : a libfaac -b : a 192k 출력을 모두 시도했습니다. .mp4 안돼 :(
Striky

@Striky "No go :("Homebrew에서 신선한 ffmpeg를 사용하여 마지막 명령을 시도했습니다. 저에게 효과적입니다. 왜 작동하지 않는지 더 자세히 설명해 주시겠습니까?
jornane

@ slhck : 방금 -c:a aac -q:a 6설정을 시도하고 결과 를와 비교 -c:a libfaac -b:a 192k했습니다. 제 생각에는 aac 코덱이 libfaac 보다 더 나은 결과를 제공 하지만 코덱이 개발 중이므로 변경 될 수 있습니다. libfdk_aac 는 아마도 더 나은 결과를 줄 것이지만 지금은 사용할 수 없습니다.
jornane

0

나는 이것이 오래된 질문이며 이미 답이 있다는 것을 알고 있지만 macOS에서 FFmpeg와 함께 사용중인 일부 명령을 공유하고 싶었습니다.

MKV의 AAC 오디오가 포함 된 x264 비디오 인코딩 MP4

MP4가있는 MKV의 기본 변환은 128k에서 오디오를 AAC로 변환합니다. 매핑 : 소스 입력 ( ) 에서 -map 0:0첫 번째 ( 0) 트랙을 의미 하고 동일한 소스 입력 ( ) 에서 두 번째 ( ) 트랙을 의미합니다 . 여러 개의 오디오 트랙이있는 경우이 작업을 좋아하므로 세 번째 트랙을 얻기 위해 select와 같은 작업을 수행 할 수 있습니다.0-map 0:110-map 0:3

ffmpeg -i input.mkv \
       -c:v copy \
       -c:a aac -b:a 128k \
       -map 0:0 -map 0:1 \
       output.mp4 \
       ;

MKV의 AAC 오디오가 포함 된 HEVC / x265 비디오 인코딩 MP4

이것은 위의 x264 명령과 유사하지만 대신 HEVC / x265를 사용하여 소스 MKV에서 동일한 비디오 (더 나은 품질은 아니지만) 비디오로 더 작은 파일 크기를 얻습니다. HEVC / x265를 사용할 때 iOS 비디오를 720으로 스케일링하는 것을 선호합니다. MacBook, iPad 및 iPhone에서 소음이 거의없는 재생 품질이 확실합니다. 하드웨어와 OS가 HEVC / x265 재생을 지원하는지 확인하십시오. HEVC / x265는 CPU를 많이 사용하므로 시스템에 많은 CPU 전력이없는 경우 하루 정도의 시간이 걸리거나 90 분 분량의 비디오를 인코딩하는 데 시간이 걸릴 수 있습니다.

ffmpeg -i input.mkv \
       -vf scale=-1:720 \
       -c:v libx265 -crf 20 \
       -c:a aac -b:a 128k \
       -threads 4 \
       -tag:v hvc1 \
       -map 0:0 -map 0:1 \
       output.mp4 \
       ;

다음은 입력 및 출력 파일 이외의 각 핵심 매개 변수에 대한 분석입니다.

  • -vf scale=-1:720: 비디오를 720 높이로 조정하고 너비를 자동으로 계산합니다. FFmpeg는 100 % 명확하지 않은 이유로 일부 MKV를 질식시킬 수 있으므로 다음과 같이 너비를 명시 적으로 설정해야합니다 -vf scale=1280:720. 실험 해보고 어떤 것이 효과가 있는지보십시오.
  • -c:v libx265 -crf 20: libx265비디오 인코딩 코덱입니다. 은 -crf 20은 IS CRF (일정 속도 계수) . 기본 CRF를 지정하지 않으면 28이지만, 현재로서는 품질이 거의 ... Meh입니다. 품질과 파일 크기 사이의 균형이 좋기 때문에 20을 선호합니다.
  • -threads 4: 스레드 수를 지정하고 싶습니다. 4는 내 시스템이 현재 처리 할 수 ​​있지만 때로는 2 또는 3으로 래칫합니다. CPU를 충분히 처리 할 수 ​​있으면 높은 숫자가 더 빠릅니다.
  • -tag:v hvc1: iOS 기기가 HEVC / x265 비디오를 올바르게 재생하기 위해 배치 할 매직 메타 데이터 설정입니다.

그리고 그것은 그것에 관한 것입니다!

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