mp4파일을 웹서버에 올리고 클라이언트에서 브라우저로 재생시킬때 구간 skip 시킬때, 스트림 방식이 안되고 다운로드후 재생이 기본이다.
그래서 Hint를 줘서 구간이동시 바로바로 재생이 되는 스트림방식으로 변경해준다.
하나의 파일에 한번이상 적용하면 사운드가 깨지니 꼭 1회 적용으로 끝내야한다.
만약을 대비해 원본은 두고 복사본으로 작업하는게 좋다.
나는 jwplayer로 웹서버에서 mp4들을 스트리밍하고있다.
준비물.
mp4box가 필요하다.
https://gpac.wp.imt.fr/downloads/gpac-nightly-builds/
에서 다운받아서 설치를 하고 필요한것만 빼고 다시 지우면된다.
그래서 아래와 같이 필요한것만 뽑아두었다.
간혹 vc 라이브러리 등이 설치되어있지않을때 안될수도있기에 , 구버전도 올려둔다.
commandline 명령어
for %a in (*.mp4) do mp4box -hint "%~Na.mp4"
배치파일명령어
배치파일에서 쓸때는 %%로 들어가야한다.
for %%a in (*.mp4) do mp4box -hint "%%~Na.mp4"
첨부한 압축파일을 폴더에 풀고 해당폴더에 mp4파일을 두면된다.(mp4파일은 사본으로 작업하자)
MP4Hint.CMD 내용
::mp4box.exe와 동일 위치에 두고 실행하면 된다.
::폴더안에 스트리밍을 위한 hint를 줄 mp4파일을 여러개 두면
::일괄 모든 파일을 처리한다.
pushd %~dp0
for %%a in (*.mp4) do mp4box -hint "%%~Na.mp4"
exit
---------------------------------------
여기서 나는 원본과 hint 준것을 별도로 두기 위해서
완료된것은 complete폴더를 만들고 파일명에 _h를 붙이고, 폴더속으로 이동시키게 했다.
::mp4box.exe와 동일 위치에 두고 실행하면 된다.
::폴더안에 스트리밍을 위한 hint를 줄 mp4파일을 여러개 두면
::일괄 모든 파일을 처리한다.
pushd %~dp0
if not exist complete mkdir complete
for %%a in (*.mp4) do mp4box -hint "%%~Na.mp4"
for %%a in (*.mp4) do ren "%%~Na.mp4" "%%~Na_h.mp4"
for %%a in (*_h.mp4) do move "*_h.mp4" .\complete
exit
두개의 CMD중 하나만 사용하자