"-movflags frag_keyframe+empty_moov" 플래그는 무엇을 의미합니까?

"-movflags frag_keyframe+empty_moov" 플래그는 무엇을 의미합니까?

FFMPEG로 비디오를 인코딩할 때 사용하고 있습니다 -movflags frag_keyframe+empty_moov. 인터넷 어딘가에서 찾았습니다. mp4 비디오 스트림을 얻을 수 있습니다(그것 없이는 Could not write header for output file #0 (incorrect codec parameters ?)출력을 어딘가에서 스트리밍하려는 경우 오류가 발생하지만 출력 파일 이름을 전달하면 작동합니다) out.mp4. 예). 이 플래그가 어떻게든 내 동영상을 망칠 수 있고 예를 들어 이 플래그를 사용할 때(이 플래그가 없으면 Twitter에서 내 동영상을 허용함) Twitter에 업로드할 수 없기 때문에 묻고 있습니다. 그래서 인코딩/형식이나 다른 문제가 발생합니다. 해결 방법이 있나요?

답변1

여기에 명시된 바와 같이 :https://stackoverflow.com/questions/8616855/how-to-output-fragmented-mp4-with-ffmpeg

  • frag_keyframe으로 인해 출력이 조각화됩니다.
  • empty_moov는 출력을 100% 조각화합니다. 이것이 없으면 첫 번째 조각은 단편 영화(moov 사용)로 다중화되고 나머지 미디어는 조각으로 다중화됩니다.

그리고 FFmpeg 문서에는 조각화가 무엇인지에 대한 설명이 있습니다.https://www.ffmpeg.org/ffmpeg-formats.html#mov_002c-mp4_002c-ismv

일반적으로 MOV/MP4 파일에는 한 위치에 저장된 모든 패킷에 대한 모든 메타데이터가 있습니다(파일 끝에 기록되며 movflags에 faststart를 추가하거나 qt-faststart를 사용하여 더 나은 재생을 위해 시작 부분으로 이동할 수 있습니다). 도구). 조각난 파일은 패킷과 해당 패킷에 대한 메타데이터가 함께 저장되는 여러 조각으로 구성됩니다. 조각난 파일을 작성하면 쓰기가 중단되더라도 파일을 디코딩할 수 있다는 장점이 있으며(일반 MOV/MP4는 제대로 완료되지 않으면 디코딩할 수 없음) 매우 긴 파일을 작성할 때 메모리가 덜 필요합니다(일반 MOV를 작성하기 때문에). /MP4 파일은 파일이 닫힐 때까지 메모리의 모든 단일 패킷에 대한 정보를 저장합니다. 단점은 다른 응용 프로그램과의 호환성이 낮다는 것입니다.

답변2

대신 이것을 사용해보십시오 :

-movflags faststart

관련 정보