Мне нужно выполнить, казалось бы, простую задачу по укладке 3 файлов рядом друг с другом. Они все одинаковые: .avi Container, 320x240, 4:3, 25 кадров в секунду, кодек GeoVision Advanced MPEG-4 GEO. Я установил кодек GeoVision (http://www.geovision.com.tw/english/5_8.asp# — выберите «другие утилиты»), чтобы моя система (Windows Media Player, Media Player Classic) могла воспроизводить файлы. Также я могу открывать и работать с ними в Virtual Dub. Я установил AviSynth и написал простой скрипт для их укладки рядом друг с другом.
h1 = AVISource("Event20150423075842001.avi")
h2 = AVISource("Event20150423075842002.avi")
h3 = AVISource("Event20150423075848003.avi")
StackHorizontal(h1, h2, h3)
теперь, когда я сохраняю его как .avs, а затем открываю его с помощью VirtualDub, я вижу три видео, красиво расположенных рядом друг с другом, но цвета странные, а части видео перевернуты, и все просто ... неправильно - см. Скриншот http://www.linkfile.de/download-46f71057ed130f9be29510f68ce4ee71.php. Сначала я подумал, что это как-то связано с тем, что avisynth использует неправильный кодек, поэтому я заставил его использовать gmp4 (как вы также можете видеть на скриншоте), но результат тот же. Теперь у меня также установлен Avisynth+ и VirtualDubMod. Когда я открываю .avs в VDMod, я получаю «не удалось найти декомпрессор для формата YV24», но он все равно открывает видео, которое выглядит немного лучше (но когда я делаю прямую потоковую копию и сохраните его, затем воспроизведите его в MPC, он выглядит точно так же, как на первом скриншоте). Итак, эта ошибка указывает мне на что-то, связанное с цветовым пространством. Теперь мои вопросы:
- Как я могу узнать, в каком формате мои файлы? ЮВ24, ЮВ12,..?
- И затем, как я могу указать Avisynth использовать формат, с которым может работать VirtualDubMod?
- Или как заставить VirtualDub работать с YUV24? Мне просто не хватает кодека? Находится ли мой ход мыслей хоть немного в правильном направлении, или моя проблема совсем в другом?
Я также нашел этот связанный поток: Редактирование/декодирование файлов AVI с использованием системы -установлены проприетарные кодеки, но с помощью avisynth и ffmpeg я получаю такие же результаты, как и с VirtualDub.
Я не могу использовать решение сначала преобразовать все мои файлы, а затем выполнить стек на втором этапе, потому что фактические файлы, с которыми мне приходится работать, составляют около 180 видео, каждое из которых длится около 8 часов, и время, которое они потребляют, будет стоять в никакого отношения к моим возможностям..
Я действительно искал решения на прошлой неделе, и я думаю, что близок к этому, но, к сожалению, я просто недостаточно знаю о программировании, чтобы решить его самостоятельно ... поэтому я также хочу извинить за любые очевидные глупости в моем объяснении;) я очень благодарен за любую помощь
Всем хорошо провести время
РЕДАКТИРОВАТЬ: Итак, у меня есть еще немного информации и пример файла, на который я не могу ссылаться в этом посте, потому что у меня снова недостаточно репутации, очень приятно. Постараюсь комментировать и выкладывать ссылки :)
Вот что мне принесла команда info(): Цветовое пространство: YV24, FieldBased (Separated) Video: NO, Parity: Bottom Field First, Video Pitch: 320 байт, Audio: NO, CPU обнаружен: x87 MMX ISSE SSE4.1 SSSE3