Как создать видео с некорректной медиаинформацией?

Мне нужно создать несколько правильных видео с неверной медиаинформацией для тестирования. Например, вдвое уменьшен битрейт или частота кадров, разрешение 1920х1000 вместо 1920х1080. Как я могу редактировать медиаинформацию?

Я попытался:

  • Медиаплеер VLC - позволяет редактировать только "автора", "года" и т.д.
  • OpenShot Video Editor - позволяет создавать видео с любым разрешением, но я не могу создать видео 1920x1080 с mediainfo height = 1000
  • ffmpeg - позволяет установить медиаинформацию с ключом -metadata или из файла, но не работает для разрешения
  • HexEditor - пытался найти "1080" в бинарном формате и заменить на "1000" но не помогло

Есть ли другие варианты сделать это?


person Latorus    schedule 12.05.2020    source источник


Ответы (1)


Существует два типа метаданных: произвольные и непроизвольные.

Произвольные метаданные, такие как автор, год и т. д., доступны для редактирования, поскольку они игнорируются механизмом декодирования. Другие метаданные, такие как скорость вращения или битрейт, являются статическими и определяются самим медиа. Они доступны только для чтения и могут быть изменены только путем изменения базового видеопотока. то есть транскодирование.

Если ваше видео имеет формат h.264, теоретически вы можете проанализировать SPS, изменить разрешение (разрешение кодируется в exp-golomb в макроблоках за вычетом заполнения, оно не кодируется как пиксели). Это значение было бы трудно найти в шестнадцатеричном редакторе, поскольку оно имеет переменную длину и не выровнено по байтам. Вы можете прочитать ISO 14496-10, чтобы узнать больше. Но это приведет к тому, что видео будет выглядеть поврежденным и, вероятно, не поддающимся декодированию.

Если ваше видео не в формате h264, вам нужно изучить этот кодек, каждый кодек отличается.

person szatmary    schedule 12.05.2020