
MP4로 변환된 일부 비디오 파일이 있지만 정확하지 않습니다. Exiftool을 사용하여 검사하면 다음과 같은 메타데이터 값이 표시됩니다.
Duration : 0:11:23
Track Duration : 0:11:23
Media Duration : 0:04:13
마지막 것은 올바르지 않습니다. VLC 미디어 플레이어에서는 비디오가 제대로 재생되지만 웹 앱(Flowplayer)에서 비디오를 재생하는 데 사용하는 도구는 "미디어 지속 시간" 값을 심각하게 받아들이고 비디오를 자릅니다.
내가 시도한 메타데이터를 수정하려면
exiftool -"Media Duration"="0:11:23" video_1.mp4
하지만 난 얻었어
Warning: Sorry, Media is not writable
Nothing to do.
Sudo는 도움이되지 않았습니다. 매뉴얼 페이지와웹사이트, 엑시프툴~할 수 있다MP4 파일의 메타데이터를 읽고 쓸 수 있지만 "ExifTool은 파일 형식에 심각한 문제가 발견되면 파일을 다시 쓰지 않습니다."
해당 파일을 어떻게 수정할 수 있나요?
편집: 나는 ffmpeg나 mediainfo에 운이 없었습니다.
답변1
해결책을 찾았습니다. 메타데이터를 편집하는 대신 ffmpeg를 사용하여 파일을 다시 인코딩했습니다. 이러한 방식으로 비디오 및 오디오 콘텐츠가 단순히 복사되어 오류 없는 새로운 MP4 컨테이너에 래핑되었습니다. 명령은 다음과 같습니다.
ffmpeg -i video_1.mp4 -vcodec copy -acodec copy video_1_fixed.mp4
답변2
나열된 EXIFtool 명령이 작동하지 않는 데에는 두 가지 이유가 있습니다.
첫째, "미디어 지속 시간"은 태그 이름이 아니라 설명입니다. 에서ExifTool FAQ #2
...기본적으로 추출한 정보에 대해 태그 이름이 아닌 설명을 인쇄합니다. … 설명에는 단어 사이에 공백이 포함되는 경우가 많지만 태그 이름에는 공백이 포함되지 않습니다. 또한 태그 이름은 태그 이름에 관계없이 항상 영어입니다.
-lang
환경. 설명 대신 태그 이름을 인쇄하려면-s
옵션정보를 추출할 때
두 번째 문제는 MediaDuration
태그가 쓰기 가능한 태그가 아니라는 것입니다(참조:QuickTime MediaHeader 태그).