Преобразование H265 в MP4 с использованием FFMPEG и GPU - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь преобразовать вывод видео с камеры в MP4, но он использует слишком много CPU (однако мы не можем ограничить программу, поскольку нам нужно, чтобы это было сделано быстро), поэтому мы подумали с использованием некоторого графического процессора может быть вариантом.

На данный момент мы использовали это до сих пор:

ffmpeg.exe -i "old.mkv" "new.mp4"

Пробовал с помощью:

ffmpeg.exe -hwaccel cuvid  -i "old.mkv" "new.mp4"

Однако, это выдает ошибку:

"Pixel format 'yuvj420p' is not supported"

Я ничего не могу сделать с видеовходом, но я ищу альтернативы, чтобы уменьшить использование ЦП.

Кодирование видео HEVC.

Я подумал, что GPU может быть хорошей идеей, но это, кажется, несовместимо с видеовходом.

Любые идеи о том, как запустить ffmpeg на GPU, или альтернативы для пониженияЗагрузка процессора?

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Этот скрипт bash должен работать для графических процессоров Nvidia .Я проверил это с 1050 Ti, который из nvidia-gpu-support-matrix выглядит как первое поколение, в котором был чип NVDEC для ускоренного декодирования чипа NVENC для ускоренного кодирования.

#! /usr/bin/sh
# requires a properly compiled ffmpeg; CUDA and a supported GPU from Nvidia https://developer.nvidia.com/video-encode-decode-gpu-support-matrix

# Take in some inputs, this will not check the validity
# there are many more rendering options available.

printf "input file: "
read INPUT
printf "output file: "
read OUTPUT
printf "choose audio [codec ac3, aac, etc]: "
read AUDIO
printf "video resolution [1920x1080, 1024x720, etc]: "
read RESOLUTION
printf "video bitrate [1200~48000]: "
read V_BITRATE

ffmpeg -hide_banner -hwaccel cuvid -c:v hevc_cuvid -resize $RESOLUTION -autorotate 0 -i $INPUT -c:a $AUDIO -c:v h264_nvenc -preset slow -b:v $V_BITRATE $OUTPUT
0 голосов
/ 28 февраля 2019

Не существует такой вещи, как кодирование GPU.Некоторые графические процессоры поставляются с чипом кодирования видео на борту, а некоторые нет.Вам нужно знать, что находится в вашей системе и скомпилирован ли ffmpeg для его поддержки.Посмотрите в NVENC (если Nvidia GPU) VCE (если AMD) или Quicksync (если Intel).-hwaccel cuvid если для ускоренного декодирования (не кодирования).

...