FFmpeg не может конвертировать файлы webm при принудительном использовании h264_nvenc

512
oktay eşgül

Я работал с ниже окружающей среды.

==> Ubuntu 16.04.3

==> FFmpeg: 3.4.2

- конфигурация: --prefix = / usr / local / ffmpeg_new / --enable-cuda --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags = -I / usr / local / cuda / include --extra-ldflags = -L / usr / local / cuda / lib64 --enable-libvpx --enable-libvorbis --enable-libfreetype

==> Cuda 9.1.85

==> Графический процессор: GeForce GTX 1080ti

Моя цель - ускорить модификацию видео через источник графического процессора, так как на моем медиа-сервере высок трафик.

Вот основные этапы моего процесса:

1. Разделить видео и аудио звонящего.

время ffmpeg -y -i 230087_caller.webm -vn -ab 256 230087_caller.wav

2. Сплит видео и аудио звонящего

время ffmpeg -y -i 230087_callee.webm -vn -ab 256 230087_callee.wav

3.Mux оригинал видео звонящего с Callee аудио для хранения разговора.

время ffmpeg -y -i 230087_caller.webm -i 230087_callee.wav -filter_complex '[0: a] aformat = sample_fmts = fltp: sample_rates = 44100: channel_layouts = стерео, громкость = 0,5 [a1]; [1: а] aformat = sample_fmts = fltp: sample_rates = 44100: channel_layouts = стерео, объем = 0,5 [а2]; [A1] [a2] amerge, панорамирование = стерео | c0

4. Добавьте файл шрифта времени к фильму caller_temp, который завершается с ошибкой ниже.

время ffmpeg -y -i caller_temp.webm -vf drawtext = fontfile = / usr / share / fonts / truetype / dejavu / DejaVuSans-Bold.ttf: x = 8: y = 8: fontsize = 16: fontcolor = yellow @ 1: расширение = strftime: basetime = 1518172680000000: текст = '% Y-% m-% d% H-% M-% S' -строчный -2 -shortest -c: libvorbis -c: v h264_nvenc final_font_test.webm

[webm @ 0x29e8540] Для WebM поддерживаются только видео VP8 или VP9, ​​а также субтитры Vorbis или Opus и WebVTT. av_interleaved_write_frame (): неверный аргумент Ошибка записи трейлера output_temwp.webm: неверный аргумент

==================================

Вот детали моего файла webm:

Поток # 0: 0 (англ.): Видео: vp8, yuv420p, 640x480, SAR 1: 1, DAR 4: 3, 27,58 тбр, 1 Кбайт, 1 Кбайт (по умолчанию) Метаданные: заголовок: Видеопоток № 0: 1 (англ.) : Аудио: опус, 48000 Гц, стерео, fltp (по умолчанию)

==================================

Я взглянул на матрицу поддержки кодирования / декодирования видео NVIDIA, мой GPU, похоже, должен поддерживать это преобразование.

https://developer.nvidia.com/video-encode-decode-gpu-support-matrix

=================================

Однако, когда я изменил формат выходного файла на mp4 / avi / mpeg, графический процессор можно использовать без каких-либо проблем. Тем не менее, для нас важен webm, так как размер файла другого контейнера становится рискованным с точки зрения хранения.

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

Заранее спасибо. С уважением

2
Вы используете кодер H264, который контейнер WebM не поддерживает. Вам нужен кодировщик VP8 / 9, который использует аппаратное обеспечение nvidia, но я не вижу ни одного доступного. Gyan 6 лет назад 0
Спасибо, Малвя, за ваши отзывы. Есть ли у вас какие-либо рекомендации относительно того, какое оборудование может поддерживать кодирование vp8 / vp9 вместо nvidia geforce? Или у вас есть какие-либо рекомендации, чтобы получить лучшую производительность на выходе с этим существующим графическим процессором, я имею в виду другой тип контейнера вывода. oktay eşgül 6 лет назад 0
Вы можете сохранить в MKV. Gyan 6 лет назад 0
Любой комментарий для vp8 / vp9 с поддержкой аппаратного обеспечения графического процессора. oktay eşgül 6 лет назад 0
В Linux вы можете использовать VAAPI для использования графических процессоров Intel для VP8 / 9. Gyan 6 лет назад 0
Спасибо за ваши отзывы и помощь Mulyya, очень ценю. , oktay eşgül 6 лет назад 0
Привет, Малви, не могли бы вы сообщить мне, если у вас есть опыт, что вы кодируете vp8 / vp9 через любой графический процессор? Насколько я понимаю, Intel, кажется, поддерживает кодирование VP8 / VP9 через vaapi, как вы уже заявили, но пока неясно, какую аппаратную версию следует купить, чтобы продолжить кодирование VP8 / VP9 Webm. oktay eşgül 6 лет назад 0

0 ответов на вопрос

Похожие вопросы