VirtualDub MP4 Encoder/Decoder

Category: Прочее
Posted on: 08.06.2020 в 01:52 - 8 комментариев - Visited 7185 times

Понадобилось мне скачать видео с YouTube, вырезать от туда кусок и загрузить себе…

Загрузить видео с Youtube помог Download Master, к слову, у товарищей с Вестбайт раньше были серьёзные проблемы с этим, но они их успешно решили, за что большое спасибо.

Я терпеть не могу всякие «суперпроги», которые созданы для сбора денег и так далее, у нас есть замечательный VirtualDub, который хоть и закончился в 2013 году, но до сих пор актуален. К слову, VirtualDub поддерживает кучу расширений, сторонних рендеров, и прочее, и прочее, и прочее.

И так, приступим.

Изначально VirtualDub не умеет не открывать, не сохранять MP4. Давайте научим его!

Скачиваем последнюю версию VirtualDub
Скачиваем FFMpeg Input Plugin (любой на выбор):
Virtualdub FFMpeg Plugin v1.9.0.5 (X86_X64) (я использую этот)
Virtualdub FFMpeg Plugin v2.0.0.0 (X86_X64)

Скачиваем Zeranoe FFmpeg Encoder (разработка прекращена 18 сентября 2020 года, последняя версия за 31 августа 2020 года):

FFmpeg latest (win64)  shared|static
FFmpeg v4.3.1 (win64) shared|static
FFmpeg v4.2.3 (win64) shared|static
FFmpeg v3.4.2 (win64) shared|static

FFmpeg latest (win32)  shared|static
FFmpeg v4.3.1 (win32) shared|static
FFmpeg v4.2.3 (win32) shared|static
FFmpeg v3.4.2 (win32) shared|static

Разница между Общей/Статической заключается в том, что в статической все компоненты включены в один исполняемый файл, который устанавливает всё необходимое. Общие сборки содержат все компоненты и библиотеки отдельно, предназначены для разработчиков. Лично у меня установлена статическая 4.2.3b.

FFMpegInputPlugin (в зависимости от скачанной версии) нужно распаковать в папку расширений VirtualDub (это plugins32 или plugins64 в зависимости от разрядности), либо просто установить. Расширение без проблем умеет импортировать видео в разрешении максимум 720p, что больше — чревато большими проблемами, зависаниями или прочими неприятностями, вплоть до вылета самого VirtualDub. Здесь всё просто, расширение интегрируется даже в диалог открытия файлов или просто можно перетащить желаемый файл в окно VirtualDub.

С экспортом посложнее.

Устанавливаем Zeranoe FFmpeg Encoder. Теперь нужно научить VirtualDub с ним работать. Решение из Интернета выглядит так:

  1. Создаём файл ffmpeg-1.vdprof
  2. Вписываем содержимое:
    {
    "description": "VirtualDub external encoder profile collection",
    "externalEncoders": {
      "sets": {
      "mov ff x264 r18+pcm": {
      "videoEncoder": "V ff 264 r18",
      "audioEncoder": "A ff pcm",
      "multiplexer": "M ff mov",
      "description": "mov",
      "extension": "mov",
      "processPartial": true,
      "useOutputAsTemp": false
      },
      "mp4 ff mpeg4 q1+ac3": {
      "videoEncoder": "V ff mpeg4 q1",
      "audioEncoder": "A ff ac3 192k",
      "multiplexer": "M ff mov",
      "description": "mp4",
      "extension": "mp4",
      "processPartial": true,
      "useOutputAsTemp": false
      },
      "mov ff mjpeg+pcm": {
      "videoEncoder": "V ff mjpeg q1",
      "audioEncoder": "A ff pcm",
      "multiplexer": "M ff mov",
      "description": "mov",
      "extension": "mov",
      "processPartial": true,
      "useOutputAsTemp": false
      }
      },
      "profiles": {
      "M ff mov": {
      "name": "M ff mov",
      "program": "C:\\Program Files\\ffmpeg\\bin\\ffmpeg.exe",
      "commandArguments": "-i \"%(tempvideofile)\" -i \"%(tempaudiofile)\"  -c:v copy -c:a copy -r %(fps) -f mov \"%(outputname)\"",
      "outputFilename": "%(outputname).audio",
      "type": 2,
      "inputFormat": 0,
      "checkReturnCode": true,
      "logStdout": true,
      "logStderr": true,
      "bypassCompression": false,
      "predeleteOutputFile": true
      },
      "V ff 264 r18": {
      "name": "V ff 264 r18",
      "program": "C:\\Program Files\\ffmpeg\\bin\\ffmpeg.exe",
      "commandArguments": "-f rawvideo -s %(width)x%(height) -r %(fps) -i - -vcodec libx264 -pix_fmt yuv420p -crf 18 -preset veryfast -x264opts colormatrix=bt709:vbv-maxrate=62500:vbv-bufsize=78125  \"%(tempvideofile)\"",
      "outputFilename": "video.mov",
      "type": 0,
      "inputFormat": 0,
      "checkReturnCode": true,
      "logStdout": true,
      "logStderr": true,
      "bypassCompression": false,
      "predeleteOutputFile": true
      },
      "V ff 264 r22": {
      "name": "V ff 264 r22",
      "program": "C:\\Program Files\\ffmpeg\\bin\\ffmpeg.exe",
      "commandArguments": "-f rawvideo -s %(width)x%(height) -r %(fps) -i - -vcodec libx264 -pix_fmt yuv420p -crf 22 -preset medium -x264opts colormatrix=bt709:vbv-maxrate=62500:vbv-bufsize=78125  \"%(tempvideofile)\"",
      "outputFilename": "video.mov",
      "type": 0,
      "inputFormat": 0,
      "checkReturnCode": true,
      "logStdout": true,
      "logStderr": true,
      "bypassCompression": false,
      "predeleteOutputFile": true
      },
      "A ff pcm": {
      "name": "A ff pcm",
      "program": "C:\\Program Files\\ffmpeg\\bin\\ffmpeg.exe",
      "commandArguments": "-i - -vn -c:a pcm_s16le -f wav \"%(tempaudiofile)\"",
      "outputFilename": "%(outputname).wav",
      "type": 1,
      "inputFormat": 1,
      "checkReturnCode": true,
      "logStdout": true,
      "logStderr": true,
      "bypassCompression": true,
      "predeleteOutputFile": true
      },
      "V ff mpeg4 q1": {
      "name": "V ff mpeg4 q1",
      "program": "C:\\Program Files\\ffmpeg\\bin\\ffmpeg.exe",
      "commandArguments": "-f rawvideo -s %(width)x%(height) -r %(fps) -i - -c:v mpeg4 -q:v 1 -pix_fmt yuv420p  \"%(tempvideofile)\"",
      "outputFilename": "video.mp4",
      "type": 0,
      "inputFormat": 0,
      "checkReturnCode": true,
      "logStdout": true,
      "logStderr": true,
      "bypassCompression": false,
      "predeleteOutputFile": true
      },
      "M ff mp4": {
      "name": "M ff mp4",
      "program": "C:\\Program Files\\ffmpeg\\bin\\ffmpeg.exe",
      "commandArguments": "-i \"%(tempvideofile)\" -i \"%(tempaudiofile)\"  -c:v copy -c:a copy -r %(fps) -f mp4 \"%(outputname)\"",
      "outputFilename": "%(outputname).audio",
      "type": 2,
      "inputFormat": 0,
      "checkReturnCode": true,
      "logStdout": true,
      "logStderr": false,
      "bypassCompression": false,
      "predeleteOutputFile": false
      },
      "M ff avi": {
      "name": "M ff avi",
      "program": "C:\\Program Files\\ffmpeg\\bin\\ffmpeg.exe",
      "commandArguments": "-i \"%(tempvideofile)\" -i \"%(tempaudiofile)\"  -c:v copy -c:a copy -r %(fps) -f avi \"%(outputname)\"",
      "outputFilename": "%(outputname).audio",
      "type": 2,
      "inputFormat": 0,
      "checkReturnCode": true,
      "logStdout": true,
      "logStderr": true,
      "bypassCompression": false,
      "predeleteOutputFile": true
      },
      "A ff ac3 192k": {
      "name": "A ff ac3 192k",
      "program": "C:\\Program Files\\ffmpeg\\bin\\ffmpeg.exe",
      "commandArguments": "-i - -vn  -f ac3 -acodec ac3 -b:a 192k -ar 48000 -ac 2 \"%(tempaudiofile)\"",
      "outputFilename": "%(outputname).ac3",
      "type": 1,
      "inputFormat": 1,
      "checkReturnCode": true,
      "logStdout": true,
      "logStderr": true,
      "bypassCompression": true,
      "predeleteOutputFile": true
      },
      "V ff mjpeg q1": {
      "name": "V ff mjpeg q1",
      "program": "C:\\Program Files\\ffmpeg\\bin\\ffmpeg.exe",
      "commandArguments": "-f rawvideo -s %(width)x%(height) -r %(fps) -i - -c:v mjpeg -q:v 1 -pix_fmt yuv420p  \"%(tempvideofile)\"",
      "outputFilename": "%(outputname).mp4",
      "type": 0,
      "inputFormat": 0,
      "checkReturnCode": true,
      "logStdout": true,
      "logStderr": true,
      "bypassCompression": false,
      "predeleteOutputFile": true
      }
      }
    }
    }
  3. Сохраняем файл (на всякий случай, ссылка)

Далее идём в Options -> External Encoders в VirtualDub. Нажимаем Import и выбираем наш файлик. Видим, что появились новые возможности экспорта.

Обязательно запоминаем, что использование сторонних кодеков несовместимо с функцией Direct Strem Copy и работает только в режиме Full processing Mode

После всех необходимых мероприятий с нарезкой, чтобы сохранить готовый файл, необходимо выбрать в меню пункт File -> Export -> Using External Encoder и выбрать предустановку. Меня интересовала на тот момент связка mpeg4 + ac3, как по волшебству, получил желаемый MP4 файл.

К слову, если изучить файл с предустановками и почитать про возможности FFmpeg, можно добавить свои предустановки в файлик сторонних экспортёров.

Благодарю за внимание!

8 комментариев on “VirtualDub MP4 Encoder/Decoder”

1
Роман

Отличная статья! сделал все по ней, отлично работает. Хочу поделится дополнительной информацией — https://sourceforge.net/projects/vdfiltermod/files/VirtualDub%20pack/version%2015/ отсюда можно скачать архив VirtualDub с плагинами импорта. Остаётся установить FFmpeg https://sourceforge.net/projects/ffdshow-tryout/ запустить файл из этой статьи и все работает! Спасибо!

14.11.2022 on 15:19
2
Роман

Поправил адрес ссылки на архив https://sourceforge.net/projects/vdfiltermod/files/latest/download

14.11.2022 on 15:22
3
Alexzz

Где взять плагин для импорта в VirtualDub? Ссылка выше в тексе не работает, отсылает на список, в котором нет плагина.

15.05.2023 on 17:48
4
ptipti

Исправлено. Всё ушло в веб архив, перезалил к себе.

15.05.2023 on 20:01
5
Александр

Для простого пользователя бесполезная статья.
Не указано как ставить Zeranoe FFmpeg Encoder.
При попытке многократного прочтения статьи в поисках ответа, заболела голова от анимации «падающий снег» поверх текста.
Вобщем красота в ущерб информативности.
Одна польза, ссылки и идея.

07.12.2023 on 15:35
6
ptipti

Александр 🙂 Вот именно с «Zeranoe FFmpeg Encoder» никаких проблем нет от слова совсем. Он просто устанавливается (В систему добавляются соответствующие декодеры). Для написания гневных комментариев в стиле «Админ — дебил», для начала необходимо изучить какую-то минимальную базовую информацию. В нашем случае, какие именно кодеки необходимы для VirtualDub. Системные кодеки для проигрывания видео в проигрывателях не подходят. Нужны именно специальные и они должны быть установлены в системе. Все остальные моменты для взаимодействия с VirtualDub. Для наглядности фал сторонних экспортёров выложен на обозрение:
«program»: «C:\\Program Files\\ffmpeg\\bin\\ffmpeg.exe»,
«commandArguments»: «-i \»%(tempvideofile)\» -i \»%(tempaudiofile)\» -c:v copy -c:a copy -r %(fps) -f avi \»%(outputname)\»»
Смотрим, что FFMpeg Должен быть установлен, он вызывается в переменной «program» C:\\Program Files\\ffmpeg\\bin\\ffmpeg.exe
Соответственно в «commandArguments» указаны аргументы с переменными, которые тоже можно прочитать в документации (какие переменные может передавать VirtualDub сторонним экспортёрам.
Подытожим. Zeranoe FFmpeg Encoder устанавливается методом двойного щелчка на исполняемом файле и далее — далее — далее — ОК. 😉

21.12.2023 on 12:57
7
Сергей

Скачал ffmpeg-latest-win64-static
В этом архиве нет никаких исполняемых файлов для установки. Только папки bin, doc и т.п. с которыми непонятно что нужно делать.
Собственно и плагин — о «просто установить» речи нет — в архиве папки plugins32 и plugins64 содержимое одной из которых если и положить в папку plugins VirtualDub (у меня версия 1.6.19 mpeg-2) ровным счетом ничего не дает.
Камент админа Александру позабавил — совершенно непонятно что он хотел сказать.
Не, ну что отправил читать документацию это похвально, но люди то ищут инфу чтобы сэкономить себе время на изучении документаций. А тут — столько слов, текст и ПЛЮС нужно читать документацию ))

04.01.2024 on 08:23
8
ptipti

Сергей. По аналогии если написано, вставить USB-шнур в соответствующий порт компьютера, тоже надо разжёвывать, что если он с первого раза не вставляется, надо его повернуть на 180 градусов?
Почитайте комментарий, который вас позабавил ещё раз, повторяюсь:
«program»: «C:\\Program Files\\ffmpeg\\bin\\ffmpeg.exe»
То есть:

  1. Скачиваем архив статик;
  2. Заходим в «C:\\Program Files»;
  3. Создаём папку «ffmpeg»;
  4. Копируем всё из распакованного архива в эту папку, чтобы итого путь програм соответствовал вызываемому «C:\\Program Files\\ffmpeg\\bin\\ffmpeg.exe».
  5. Не благодарите.

P.S. Разработка была прекращена, поэтому исполняемых файлов уже нет. Ссылки на архивы у меня те, которые успел вытащить из вебархива, там могут быть действительно плагины в распакованном виде.

09.01.2024 on 12:58

Добавить комментарий

Включите изображения, чтобы увидеть вопрос *