2
I have been working with below environment.
==>Ubuntu 16.04.3
==>FFmpeg :3.4.2
-- configuration: --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
==> GPU: GeForce GTX 1080ti
My purpose is to accelerate video modifications via GPU source since there is high rate traffic on my media server.
Here is the main steps of my process:
1.Split video and audio of the caller.
time ffmpeg -y -i 230087_caller.webm -vn -ab 256 230087_caller.wav
2.Split video and audio of the callee
time ffmpeg -y -i 230087_callee.webm -vn -ab 256 230087_callee.wav
3.Mux original caller video with callee audio to store the conversation.
time ffmpeg -y -i 230087_caller.webm -i 230087_callee.wav -filter_complex '[0:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a1]; [1:a]aformat=sample_fmts=fltp:sample_rates=44100:channel_layouts=stereo,volume=0.5[a2]; [a1][a2]amerge,pan=stereo|c0
4.Add time fontfile to the caller_temp fil which fails with below error.
time 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:expansion=strftime:basetime=1518172680000000:text='%Y-%m-%d %H-%M-%S' -strict -2 -shortest -c:a libvorbis -c:v h264_nvenc final_font_test.webm
[webm @ 0x29e8540] Only VP8 or VP9 video and Vorbis or Opus audio and WebVTT subtitles are supported for WebM. av_interleaved_write_frame(): Invalid argument Error writing trailer of output_temwp.webm: Invalid argument
==================================
Here is the details of my webm file :
Stream #0:0(eng): Video: vp8, yuv420p, 640x480, SAR 1:1 DAR 4:3, 27.58 tbr, 1k tbn, 1k tbc (default) Metadata: title : Video Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
==================================
I have take a look at the nvidia video encode/Decode support matrix,my gpu seems should be supporting this conversion.
https://developer.nvidia.com/video-encode-decode-gpu-support-matrix
=================================
However,when I have changed the output file format to mp4/avi/mpeg GPU can be used without any issue.Yet ,webm is important for us as the other container file size becomes risky with storage perspective of view.
I will be appreciated if you share your comments and feeedbacks to proceed with this issue.
Thanks in advance. Regards
You're using a H264 encoder which WebM container doesn't support. You need a VP8/9 encoder that make use of nvidia hardware, but I don't see one available. – Gyan – 2018-02-28T06:09:03.400
Thank you Mulvya for your feedbacks . Do you have any recommendation in regards which hardware can support vp8/vp9 encoding instead of nvidia geforce ? Or do you have any recommendation to get the best output performance with this existing GPU ,I mean different type of output container. – oktay eşgül – 2018-02-28T07:18:34.503
You can save to MKV. – Gyan – 2018-02-28T07:27:29.140
Any comment for vp8/vp9 supporting GPU hardware. – oktay eşgül – 2018-02-28T07:30:12.290
On linux, you can use VAAPI to use Intel GPUs for VP8/9. – Gyan – 2018-02-28T07:31:15.763
Thank you for your feedbacks and help Mulyya,really appreciated. . – oktay eşgül – 2018-02-28T08:02:19.880
Hi Mulvya, Would you please let me know if you have hands on experience that you encode vp8/vp9 via any gpu ? As far as I see Intel seems supporting VP8/VP9 encoding via vaapi as you stated yet,still I am not clear which hardware version should I buy to proceed with VP8/VP9 webm encoding. – oktay eşgül – 2018-03-01T09:01:56.773