MKV에 MP4 및 SRT 파일 병합 / 다중 결합


0

그래서 나는 이것에 대한 답을 찾기 위해 많은 것을 찾아 낼 수있었습니다. 비슷한 사례를 찾지 만 실제로 내가하려는 일에 대한 답변을 찾을 수 없습니다.

특히이 두 가지 스레드를 살펴 보았습니다.

또한 Google은 아무런 도움이되지 않는 많은 man 페이지를 읽었습니다. (대답이 거기에 없다는 것을 의미하지 않는다, 나는 단지 그들을 찾을 수 없었다!)


어쨌든, 그 서문과 함께, 내가하려고하는 것은 다음과 같습니다.

나는 이것에 3 개의 폴더 (그리고 10 억 개의 파일)를 가지고있다.

  • 쇼 이름 - S ## E ## - Title.mp4
  • 쇼 이름 - S ## E ## - Title.eng.srt

모든 .mp4 및 .srt를 병합하려고합니다. Show Name - S##E## - Title.mkv 자막은 파일에 포함되어 있습니다.

제가 연결된 첫 번째 관련 스레드의 문제점은 .mp4를 .mkv로 바꾸고 자막을 전혀 병합하지 않는다는 것입니다.

암호:

FOR %%A IN (*.mp4) DO "C:\Program Files\MKVToolNix\mkvmerge.exe" -o "%%~nA.mkv" "%%~A"

창조하다 .mkv 파일이지만 자막은 포함되지 않습니다. 추가하려고하면 "%%~dpnA.srt" 또는 이후의 모든 것 "%%~A"나는 다음과 같은 메시지를 받는다 : Error: The file 'C:\Users\xnaas\Desktop\test\Show Name - S##E## - Title.srt' could not be opened for reading: open file error. 유사. 내 가장 큰 혼란은 내가 무엇을 입력하는지 알지 못한다는 것입니다. 무엇입니까? ~ 또는 nA 하기?

두 번째 링크의 문제점은 ffmpeg로 어떻게해야하는지 잘 모르므로 배치 형식으로 적용하는 방법을 모르겠다는 것입니다. 나는 그것이 루프를위한 또 다른 것이라고 생각하지만, 나는 그것에 익숙하지 않다.

이것은 ffmpeg (Linux는 이제 위의 Windows와 비교할 때)에서 사용했던 유일한 스크립트입니다.

for f in *.mkv; do ffmpeg -i "$f" -c:v libx264 -preset medium -crf 18 -c:a copy "encoded/${f%.mkv}.mkv"; done

아마 적응할 수있을 것이라고 확신하지만, 어떻게 확신 할 수는 없습니다.

for f in *.mp4; do ffmpeg -i "$f" -c copy "test/${f%}.mkv"; done

그걸로 땜질하면서 오랫동안 생각해 낼 수있는 최선의 방법이지만, 자막 파일을 가져 오지는 않습니다. .mp4.mkv 게다가.


저기서 방대한 벽으로 미안해. 누군가가 제공 할 수있는 도움이나 통찰력을 기대합니다. 고맙습니다!


내가 추가해야합니다, 내가 대량의 이름 바꾸기 유틸리티를 제거 할 수 있습니다 .eng 필요할 경우 모든 .srt 파일에서. 분명히 거기에있을 필요는 없습니다.
xnaas

또한 참고해야합니다 : 솔루션이 Windows에서 또는 bash에서 수행되는지는 중요하지 않습니다. 나는 둘 중 하나를 사용할 수있다. 그냥 .. 뭔가가 필요해. :)
xnaas

배치 파일에서 진행되는 작업을 설명하려면 다음을 참조하십시오. microsoft.com/resources/documentation/windows/xp/all/proddocs/...
heavyd

흠 ... 그게 대답보다 많은 질문을 만들었는지 여부를 결정할 수는 없지만 ... :) 정보를 제공해 주셔서 감사합니다!
xnaas

그것은 확실히 그것을했다. 이제는 플래그를 사용하여 나머지 부분을 해결할 수 있습니다. 나는 그것을 표시 할 수 있도록 별도로 답변을 게시해야합니다. :)
xnaas

답변:


0

주어진 배치 매개 변수가 어떻게되는지 설명하려고 노력할 것입니다. 이리 당신이 준 스크립트에 적용되고 있습니다.

기본 매개 변수는 FOR 루프가있다 %%A. 그만큼 %%A 다음과 같은 방법으로 수정됩니다.

  • "%%~nA.mkv" 따옴표를 제거하고 있습니다 ( ~ ) 및 파일 이름 만 사용 ( n ).
  • "%%~A" 따옴표를 제거하는 중입니다. ~ )

최종 명령이 다음과 같이 끝나야한다고 생각합니다.

FOR %%A IN (*.mp4) DO "C:\Program Files\MKVToolNix\mkvmerge.exe" -o "%%~nA.mkv" "%%~A" "%%~nA.eng.srt"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.