이 스레드를 찾았습니다. 원래 품질을 유지하면서 MKV를 MP4로 변환하는 핸드브레이크 설정
그리고 다음 코드를 사용하여 .MKV를 .MP4로 "변환"할 수 있습니다.
for %%a in ("*.mkv") do D:\Programme\Converter\ffmpeg\bin\ffmpeg.exe -i "%%a" -c:v copy -c:a copy "%%~na .mp4"
pause
유일한 문제는 오디오 레인이 2개라는 것입니다. 독일어, 영어. 위의 코드를 사용하면 독일어(1번째) 언어만 복사됩니다. 하지만 제2의 오디오 언어는 아닙니다. 어떻게 해야 합니까?
지금은 독일어 언어만 사용하여 .MKV에서 .MP4로 변환합니다. 하지만 VLC 플레이어의 언어를 독일어에서 영어로 전환하고 싶습니다.
당신의 도움을 주셔서 감사합니다!
편집하다: 여기에서 해당 스레드를 찾았습니다. http://ffmpeg.gusari.org/viewtopic.php?f=25&t=611
그리고 그 정보를 가지고 테스트를 했습니다. 위의 코드를 다음 코드로 변경했습니다.
for %%a in ("*.mkv") do D:\Programme\Converter\ffmpeg\bin\ffmpeg.exe -i "%%a" -map 0:0 -map 0:1 -map 0:2 -c:v copy -c:a:0 copy -c:a:1 copy "%%~na.mp4"
pause
내가 여기서 뭔가 잘못한 걸까요? 독일어/영어 자막을 어떻게 추가할 수 있나요? 거기에 자막 맵을 추가했는데 내 .MKV에 자막이 전혀 없다면 이것이 문제가 될까요? 2개의 사운드트랙과 2개의 자막이 포함된 .MKV를 변환하는 .bat 파일을 만들고 싶습니다. 그래서 정보 손실 없이 모든 .MKV 파일을 .MP4로 "재다중화"(또는 모름 변환)할 수 있습니다.
현재 내 .MKV에는 자막이 없으므로 중요하지 않습니다. 하지만 미래를 준비하는 것이 더 좋겠죠?
제가 제대로 했는지, 그리고 자막을 추가하는 방법도 알려주세요. FFmpeg를 처음 사용해봤습니다. 방금 다운로드했지만 들어본 적이 없습니다. 실제로 CMD를 사용하지 않았습니다.
답변1
ffmpeg는 모든 트랙을 자동으로 매핑하지 않습니다. 기본스트림 선택하나의 오디오, 하나의 비디오 및 하나의 자막 트랙만 출력에 매핑합니다. 당신이 원한다면지도모든 스트림의 경우 -map 0
. 선택할 수 있게 하고 싶다면무엇매핑하려면 먼저 입력 파일을 구문 분석하고( ffmpeg -i input.mkv
) 일부 스크립팅을 사용하여 최종 변환 명령을 구성해야 합니다. ffprobe가 도움이 될 수 있습니다. 보다FFmpeg Wiki: FFprobe 팁예를 들어.
-c copy
다음과 같이 지정할 수 있습니다 .스트림 복사유형에 관계없이 모든 스트림. 비디오 및 오디오 스트림을 별도로 인덱싱할 수도 있으므로 명령을 다음과 같이 단축할 수 있습니다.
ffmpeg -i input.mkv -c copy -map 0 output.mp4
답변2
VCT라는 오픈 소스 프로그램이 있습니다. https://sourceforge.net/projects/videoconvertertranscoder/?source=directory
ffmpeg용 GUI입니다. ffmpeg 명령을 수동으로 편집할 수도 있습니다. 라는 탭이 있습니다.트랜스코드MKV를 MP4로 다시 압축할 수 있지만 이 탭에는 자막을 추가할 수 있는 옵션이 없습니다.
MKV를 MP4로 다시 압축하고 동시에 자막을 추가하려는 경우 절차는 다음과 같습니다.
- 이동전환하다탭을 클릭하고 입력 파일을 선택하세요.
- ~ 안에비디오 컨테이너선택하다복사그리고오디오 코덱또한 선택복사
- 딸깍 하는 소리자막 추가외부 SRT 파일을 선택하세요.
- ffmpeg 명령 텍스트 상자에서 자막 부분을 바꾸십시오.-c:s srt ""~와 함께-c:s mov_text ""
- 딸깍 하는 소리배치 목록에 추가그런 다음 클릭하세요.시작 인코딩은 1~2분 안에 완료됩니다.
물론, 두 번 인코딩하는 것이 마음에 들지 않고 명령을 입력하는 것을 좋아하지 않는다면 다음과 같이 할 수도 있습니다.
- 탭 선택트랜스코드파일을 끌어다 놓으세요.입력 파일.., 클릭시작, 1분 안에 완료됩니다.
- 그런 다음 새로 인코딩된 MP4를 선택하고비디오 컨테이너선택하다복사그리고오디오 코덱딸깍 하는 소리복사.
- 딸깍 하는 소리배치 목록에 추가그런 다음 클릭하세요.시작. 1분 안에 인코딩이 완료됩니다.
답변3
음, 저는 다음과 같은 .bat 파일을 사용하고 있습니다:
for %%a in ("*.mkv") do D:\Programme\Converter\ffmpeg\bin\ffmpeg.exe -i "%%a" -c:v copy -c:a copy "%%~na.mp4"
하지만 오류 메시지가 표시되지만 .MP4는 여전히 잘 작동합니다. 여기 로그 파일이 있습니다: Pastie.org/private/9lqyvhyotnh1o4gp6rg5g
문제는 내 오래된 Sony TV가 .MP4를 시청하는 동안 가끔 작동이 멈춘다는 것입니다. TV의 "플레이어"인지 아니면 변환된 파일 자체인지는 알 수 없습니다. GUI가 좋은 것 같습니다. 하지만 연속해서 20개의 파일을 변환하려면 클릭이 많이 필요합니다. .bat 파일은 하나의 폴더에 있는 모든 파일을 자동으로 수행합니다.
아마도 누군가 내가 왜 오류 메시지를 받는지, 그리고 이 스크립트가 잘못된 것인지 아닌지를 알고 있을 것입니다. :)