Я пытаюсь преобразовать .mov в несжатый .avi с помощью ffmpeg. Поскольку я не хочу потери качества, я использую следующую команду ffmpeg:

ffmpeg -i toto.mov -vcodec copy -y toto.avi

Преобразование работает отлично (видео работает в VLC) за исключением того, что, когда я открываю файл с помощью virtualdub, я получаю черный экран.

В VirtualDub под информацией о файле я получаю следующее:

Frame size: 800x600, 30.000fps
Length: 802 frames
Decompressor: Internal DIB decoder

Если я не указываю аргументы -pix_fmt и -vcodec, ffmpeg конвертирует в mpeg-4 и yuv420p, но я теряю качество, поскольку мой файл сократился примерно с 400Mo до 1Mo, но видео работает в virtualdub, и на этот раз установлен декомпрессор видео кодек ffdshow (FMP4). Я сомневаюсь, что это ffdshow, поскольку у меня было другое видео, прекрасно работающее с внутренним DIB-декодером.

Есть идеи, чтобы получить образ в virtualdub?

1 ответ1

0

В первом случае вы просто меняете медиа-контейнер, но не кодек. Вероятно, VirtualDub не может декодировать тот кодек, который находится в вашем оригинальном контейнере toto.mov . Вы можете перекодировать кодек в MPEG-4 с параметром -q:v равным 1, что дает достаточно хорошее качество.

ffmpeg -i toto.mov -q:v 1 -vcodec mpeg4 -y toto.avi

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .