답변:
이것은 @abrahab의 마지막 코멘트에 대한 답변입니다.
mp4box
nginx를 통해 파일을 의사 스트리밍 할 수 있도록 파일이 필요하지 않습니다 . MP4 스트리밍 모듈은 무브 원자의 위치에 관계없이 처리 mp4box
합니다 (무브 원자를 파일의 시작 부분으로 이동).
이제 500 서버 오류의 경우 mp4box에 "-frag"옵션을 사용하고 있습니까? MP4 스트리밍 모듈은 조각난 MP4 파일을 읽을 수 없습니다. mp4box
의사 스트리밍을 잘 사용하려면 더 나은 탐색을 위해 비디오를 인터리브하는 것이 좋습니다. Moov 원자 이동은 추가 장점입니다.
나는 항상 mp4box
FFmpeg로 인코딩 된 파일 에이 작업을 수행 합니다.
MP4Box -add MyVideo.mp4 -isma Myvideo-box.mp4
또한 기본적으로 MP4 파일을 500 밀리 초 청크로 인터리브합니다.
일반적으로 MP4 컨테이너 내에 x264 비디오를 만들려고합니다. 이 옵션은 기본적으로 모든 장치 및 브라우저에서 지원됩니다.
다음으로 충분합니다. 입력 이름과 CRF 옵션을 교체하십시오. 후자는 제인 값의 범위가 19에서 25까지 인 품질을 설정합니다. 낮을수록 품질은 좋아 지지만 비트 전송률은 높아집니다.
ffmpeg -i input.avi -c:v libx264 -crf 23 -c:a aac -movflags faststart output.mp4
GUI 방식이 마음에 들면 핸드 브레이크 를 사용 하여 인코딩 할 수도 있습니다 .
faststart
옵션 사용이제해야 할 일은 MP4 컨테이너의 MOOV 아톰 을 처음으로 옮기는 것입니다 . 이 원자 (본질적으로 MP4 컨테이너의 데이터 단위)에는 비디오 / 오디오 스트림 자체에 대한 중요한 메타 데이터가 포함됩니다. -movflags faststart
정확히 그렇게해야합니다.
FFmpeg 버전에이 옵션이 없으면 업그레이드를 고려하십시오. 업그레이드 할 수없는 경우 아래 도구 중 하나를 사용하여 동일한 작업을 수행 할 수 있습니다.
Adobe AIR 응용 프로그램 인 QTIndexSwapper
MP4Box , 무료 및 오픈 소스로, 다음과 유사한 명령을 실행하여 간격을 변경할 수 있습니다 (여기서는 500).
mp4box -inter 500 input.mp4
qt-faststart in Python은 Python이 설치된 모든 곳에서 작동합니다.
qtfaststart input.mp4
그게 다야.
물론, 스트리밍의 경우 실제로 비트 전송률을 제한하여 특정 범위 내에 머무를 수 있습니다. 내 블로그 게시물에서 요금 관리 방법에 대해 자세히 알아볼 수 있습니다 .
예를 들어, -maxrate 2M -bufsize 2M
인코딩 옵션 을 추가 하면 인코딩을 2Mbit / s로 제한하여 720p 비디오에 충분할 수 있습니다. 필요한 비트 전송률은 물론 콘텐츠의 복잡도에 따라 다릅니다. 약간의 시행 착오가 필요합니다.
ffmpeg -i 1.flv -vcodec libx264 -f mp4 -an -g 1 -f mp4 -g 30 -level 3 new.mp4
다음 mp4box
과 MP4가 추구하고 nginx를보고 할 수 없습니다 500 internal server error
시작 매개 변수에 대한 더 그 0
. 때없이 코딩 비디오 -vcoded libx264
(기본 MP4 코더) 모든 작업 파일 (하지만 quality! sick!) :( (죄송합니다, 지금 당신은 대답 할 수 없습니다)
-movflags faststart
내가 정확히 필요한 것에 대해 +1
ffmpeg로 이것을 시도 할 수 있습니다 :
ffmpeg.exe -i "INPUT_FILE.AVI" -threads 2 -s 800x600 -r 25.00 -threads 1 -pix_fmt yuv420p -g 300 -qmin 3 -b 2048k -async 1 -acodec pcm_s16le -ar 22050 -ac 1 -ab 128k -y "OUTPUT_FILE.mp4"
-acodec pcm_s16le
(오류 :)에서도 작동하지 않습니다 Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
. IETF 초안과 같이 이러한 매개 변수를 정확하게 선택해야하는 좋은 이유도없는 것으로 보입니다.
MP4Box -isma -inter 500 Myvideo.mp4