Я работал с ниже окружающей среды.
==> 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 оригинальное видео звонящего с аудио звонящего для хранения разговора.
время 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, GPU можно использовать без каких-либо проблем.Тем не менее, webm важен для нас, так как размер файла другого контейнера становится рискованным с точки зрения хранения.
Я буду признателен, если вы поделитесь своими комментариями и отзывами, чтобы продолжить работу над этой проблемой.
Заранее спасибо. С уважением