Редактировать метаданные «Продолжительность мультимедиа» в файле MP4

Редактировать метаданные «Продолжительность мультимедиа» в файле MP4

У меня есть несколько видеофайлов, которые были преобразованы в 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 не помогло. Согласно его man-странице иВеб-сайт, exiftoolможетчитать и записывать метаданные в файлы MP4, но «ExifTool не будет перезаписывать файл, если обнаружит существенную проблему с форматом файла».

Как мне исправить эти файлы?


EDIT: Мне не повезло с ffmpeg или mediainfo.

решение1

Я нашел решение. Вместо того, чтобы редактировать метаданные, я перекодировал файлы с помощью ffmpeg, таким образом, что видео- и аудиоконтент был просто скопирован и упакован в новый, безошибочный контейнер MP4. Вот команда:

ffmpeg -i video_1.mp4 -vcodec copy -acodec copy video_1_fixed.mp4

решение2

Есть две причины, по которым указанная команда exiftool не сработала.

Во-первых, «Продолжительность медиа» — это не название тега, а его описание.Часто задаваемые вопросы по ExifTool №2

…по умолчанию он печатает описания, а не имена тегов, для информации, которую он извлекает. … Обратите внимание, что описания часто содержат пробелы между словами, но имена тегов никогда не содержат. Кроме того, имена тегов всегда английские, независимо от-langпараметр. Чтобы напечатать имена тегов вместо описаний, используйте-sвариантпри извлечении информации

Вторая проблема заключается в том, что MediaDurationтег не является записываемым тегом (см.Теги QuickTime MediaHeader).

Связанный контент