Я запускаю FFMPEG на ноутбуке с Windows 10 (64-разрядная версия) с процессором Intel i3 (6-го поколения) и графическим процессором AMD R5 M430.
Я снял много видео в недавней поездке. В общей сложности они составляют более 100 часов. Каждое видео занимает минимум 2-3 ГБ и длится не менее 1 часа.
Мне нужно обрезать 2-4 видео, а затем объединить их в один файл. Эту операцию необходимо выполнить для всех этих видео.
Прямо сейчас я обрезаю отдельные видео, используя следующую команду:
ffmpeg.exe -i "INPUT_VIDEO" -ss START_TIME -to END_TIME -c copy "OUTPUT_VIDEO"
А затем я объединяю видео с помощью этой команды:
ffmpeg.exe -f concat -safe 0 -i VideosToBeConcatenated.txt -c copy "CONCATENATED_OUTPUT_VIDEO"
где VideosToBeConcatenated.txt
содержит имена файлов видео для объединения.
Выполнение этих команд в одном командном окне дает мне скорость в 20-25 раз. Запуск их в двух командных окнах одновременно снижает скорость до 10-12x, а также вызывает отставание / зависание моей системы.
Есть ли способ, которым я мог бы использовать свой графический процессор для ускорения этой операции? Скажем, используя Quicksync i3 или AMF/VCE R5?
Я попытался использовать -hwaccel dxva2
вышеупомянутые команды следующим образом:
ffmpeg.exe -hwaccel dxva2 -i "INPUT_VIDEO" -ss START_TIME -to END_TIME -c copy "OUTPUT_VIDEO"
и
ffmpeg.exe -hwaccel dxva2 -f concat -safe 0 -i VideosToBeConcatenated.txt -c copy "CONCATENATED_OUTPUT_VIDEO"
Но прироста скорости не замечаю.
Я также установил ffmpeg.exe
и cmd.exe
на «Высокая производительность» в настройках AMD Switchable Graphics. Но встроенный переключаемый графический монитор предполагает, что ни один из процессов не использует dGPU.
Есть ли способ использовать свои графические процессоры (i3 Quicksync или R5 AMF/VCE) для ускорения этих операций без ущерба для качества выходного видео ?
[Редактировать:] Я пытаюсь разобраться в документации Quicksync FFMPEG , но она слишком зрелая для такого любителя, как я.
Поскольку вы используете -c copy
в своих командах, декодирование, фильтрация или кодирование не происходит, поэтому аппаратное ускорение вообще не имеет значения. Основным узким местом является дисковый ввод-вывод. На обычном внутреннем жестком диске (с процессором 3-го поколения) я получаю скорость 400x, поэтому я подозреваю, что вы читаете или записываете на внешний диск. Или ваш внутренний диск может быть медленным, иметь меньший кеш. Наибольшее ускорение будет получено при записи на другой диск, а не на диск, на котором находятся входные данные, причем в идеале оба диска должны быть внутренними.