[FFmpeg-user] Ffmpeg fails to convert webm files when h264_nvenc forced

oktay eşgül oktayesgul at gmail.com
Wed Feb 28 07:53:17 EET 2018


Hi,



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<c0+c2|c1<c1+c3[out]' -map 0:v -map '[out]'
-c:v copy -c:a libvorbis -shortest -f webm caller_temp.webm





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 at 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.


More information about the ffmpeg-user mailing list