Итак тут первый пример, если пендрите в ffmpeg, то на его основании можете сделать кучу разных пресетов. Все очень просто!
1. Скачайте, установите ffmpeg. Я его к тому же добавила в системный PATH, чтобы можно было легко запустить отовсюду.
2. Создайте .bat файл с текстом (3 строки):
@echo offНазовите этот файл, допустим convert to preview mp4.bat
"c:\Program Files\ffmpeg\bin\ffmpeg.exe" -i %1 -c:v libx264 -preset slow -crf 18 -c:a copy %1_output.mp4
pause
Если вы установили ffmpeg в отличную папку, измените путь на соответствующий.
3. Положите этот bat файл куда вам удобно (например в документы), создайте его ярлык (перетащите, зажав Alt), а его положите в папочку %userprofile%/SendTo
Переименуйте его, если необходимо убрать слово "Ярлык", но не изменяйте расширения .lnk, также вы можете изменить в его свойствах иконку и настройки консоли. Если вы вдруг не можете найти папку SendTo, то загляните в ...\AppData\Roaming\Microsoft\Windows\SendTo, но обычно на нее есть ярлык в папке юзера.
4. Теперь вам достаточно в проводнике кликнуть по любому видео правой кнопкой и выбрать Send To, там вы увидите то самое название convert to preview mp4 (или как вы там переименовали сам ярлык). Команда добавляет к имени исходного файла _output.mp4, сохранится файл в исходную папочку.
Конкретно этот пресет создает h264 high 4:2:2 L3.1, yuv422p, а звуковую дорожку копирует как есть из исходника. Позже сделаю еще несколько бат-файлов с разными вариантами сжатия. Пишите, какие вам нужны. А далее я расскажу как собрать секвенции, как конвертить стерео, как размукзсить или замуксить mkv.
Субхак. Сами bat-файлы можно хранить в вашей облачной папке, тогда все пресеты будут автоматически синхронизироваться для всех машин.
Подсказка. Скорость потока регулируется ключом -crf, значения от 0 (lossless) до 53 (и до 63 в 10-битном цвете) по экспоненциальной шкале, т.е. разность в 6 единиц = изменение потока в 2 раза. Значение 18 принято считать visually lossless. Но на скорость потока влияет и параметр -preset.
ПС. Да, я знаю, есть много GUI для ffmpeg, но среди опробованных мною ни один не прижился. Этот способ чрезвычайно прост, бесплатен, вся процедура займет у вас считанные минуты. Пожалуйста!
АПДЕЙТ
Вот такие три варианта настроек у меня в работе сейчас, пока все mp4, добавилась проверка на передачу параметра. Три текста для отдельных bat-фалов:
h264 mp4 420p законстрейнейный под level3.0 (более совместимый со старыми устройствами и плеерами)
@ECHO OFFh264 mp4 422p medium quality, slower
IF %1.==. (
ECHO [-------------- SendTo FFmpeg converter ---------------]
ECHO [ NO FILE SPECIFIED ]
ECHO [------------------------------------------------------]
) ELSE (
"c:\Program Files\ffmpeg\bin\ffmpeg.exe" -v warning -i %1 -c:v libx264 -profile:v baseline -level 3.0 -pix_fmt yuv420p -preset slow -crf 24 -c:a aac -b:a 128k -y %1_420_constrL3.mp4
ECHO [-------------- SendTo FFmpeg converter ---------------]
ECHO [ SERVED ]
ECHO [------------------------------------------------------]
)
PAUSE
@ECHO OFFh264 mp4 422p high quality, slower
IF %1.==. (
ECHO [-------------- SendTo FFmpeg converter ---------------]
ECHO [ NO FILE SPECIFIED ]
ECHO [------------------------------------------------------]
) ELSE (
"c:\Program Files\ffmpeg\bin\ffmpeg.exe" -v warning -i %1 -c:v libx264 -preset slower -crf 16 -pix_fmt yuv422p -c:a copy -y %1_422_medium_slower.mp4
ECHO [-------------- SendTo FFmpeg converter ---------------]
ECHO [ SERVED ]
ECHO [------------------------------------------------------]
)
PAUSE
@ECHO OFF
IF %1.==. (
ECHO [-------------- SendTo FFmpeg converter ---------------]
ECHO [ NO FILE SPECIFIED ]
ECHO [------------------------------------------------------]
) ELSE (
"c:\Program Files\ffmpeg\bin\ffmpeg.exe" -v warning -i %1 -c:v libx264 -preset slower -crf 8 -pix_fmt yuv422p -c:a copy -y %1_422_highest_slower.mp4
ECHO [-------------- SendTo FFmpeg converter ---------------]
ECHO [ SERVED ]
ECHO [------------------------------------------------------]
)
PAUSE