2012-01-23 5 views
0

MP4Box를 사용하여 비디오에 자막 파일을 추가하고 있습니다. 다음 명령은 명령 줄에서 완벽하게 작동합니다 :명령 줄 MP4Box에서 자막 추가

c:/GPAC/MP4Box -add c:/test.m4v#audio -add c:/test.m4v#video -add c:/test_en.srt:hdlr=sbtl:lang=en:group=2:layer=-1 -new c:/test2.m4v 

그러나, 내가 정말하고 싶은 것은 박쥐 파일에 명령을 넣어하는 것입니다. 다음은 배치 파일 내 명령입니다 /test.m4v#video -add C : /test_en.srt : hdlr = sbtl

%1/GPAC/MP4Box -add %2/%3#audio -add %2/%3#video %4 -new %2/%3 

당신은 내가 -add C "를 전달하기 위해 노력하고 볼 수 있듯이 : lang = en : group = 2 : layer = -1 "을 네 번째 매개 변수로 사용하십시오. 내가 원하는 이유는 추가되는 자막 파일이 많기 때문입니다.

"-add c : /test.m4v#video -add c : /test_en.srt : hdlr = sbtl : lang = en : group = 2 : 레이어 = -1 - 추가 c :/테스트 2.2.2. 나는 얼마나 많은 -add 명령이 있어야 하는지를 미리 알지 못하기 때문에 모든 것을 하나의 매개 변수로 전달하려고합니다. 그러나, mp4box는 이것을 좋아하지 않습니다.

이것이 mp4box의 제한 사항인지 일반적으로 일괄 파일 매개 변수가 있는지 확실하지 않습니다.

+0

는 "mp4box이 좋아하지 않는다"를 - 수 당신은 그걸 조금 확장합니까? 오류가 있습니까? – blahdiblah

+0

아니요, 오류가 없습니다. 이렇게하면 명령 줄에서 바로 작동하지만 정확히 같은 매개 변수를 가진 배치 파일에서는 작동하지 않습니다. – irrational

답변

0

나는 이것을 실행해야 할 때마다 코드에서 배치 파일을 쓰고 다시 작성함으로써이 문제를 해결했습니다. 그래서 나는 모든 나의 주장을 가지고 배치 파일을 만들 것이다. 그것을 실행하십시오. 그런 다음 파일을 삭제하십시오. 이것은 훌륭하게 작동했습니다.

0

Windows의 배치 파일은 기발하고 기능이 제한되어 있습니다. 당신이 할 수있는 일은 Cygwin을 사용하는 것인데, Windows에서 Bash와 같은 실제 쉘을 사용할 수있게 해줍니다.

1

나는 이것이 오래된 스레드라는 것을 알고 있지만 앞으로 검색 할 사람을위한 것입니다.

나는 일괄 처리 시작하는 간단한 마우스 오른쪽 클릭 메뉴 기능을 허용하도록 filemenu 도구와 함께 배치 파일에 다음과 같은 방법을 사용 :

for %%a in (*.m4v) do mp4box -add "%%~Na.eng.srt":lang=eng:layout=0x60x0x-1:group=2:hdlr="sbtl:tx3g" "%%a"