[FFmpeg-user] RTMP WriteN error using NVENC while libx264 works fine
Roger Pack
rogerdpack2 at gmail.com
Thu Jan 7 19:38:34 CET 2016
Does your RTMP server show any logs?
On 12/9/15, Matthew Shapiro <me at mshapiro.net> wrote:
> I am trying to run some transcoding tests to figure out how well ffmpeg
> works on some GPU servers we have.
>
> From my desktop I am sending up an RTMP stream via OBS to a media server
> system we have running. I then started ffmpeg with arguments to pull that
> feed from the media server and push it back to a different ingestion point
> on that server. So for example with libx264 I am invoking it with the
> following:
>
> ffmpeg -loglevel verbose -i "rtmp://server/live/matt-input live=1" -vcodec
> libx264 -ar 44100 -f flv "rtmp://server/live/matt-test1"
>
> This is meant as a bare bones basic test without doing any meaningful
> conversion, and it works perfectly. I"m able to subscribe to
> rtmp://server/live/matt-test1 and see my vide out.
>
> However, when I change libx264 to nvec:
>
> ffmpeg -loglevel verbose -i "rtmp://server/live/matt-input live=1" -vcodec
> nvenc -ar 44100 -f flv "rtmp://server/live/matt-test1"
>
> After about 70-90 frames it gives me WriteN, RTMP send error 104 (136
> bytes). The metadata that ffmpeg sees from this video is:
>
> Metadata:
> Server NGINX RTMP (github.com/arut/nginx-rtmp-module)
> width 1920.00
> height 1080.00
> displayWidth 1920.00
> displayHeight 1080.00
> duration 0.00
> framerate 30.00
> fps 30.00
> videodatarate 0.00
> videocodecid 0.00
> audiodatarate 0.00
> audiocodecid 0.00
> profile
> level
> Input #0, live_flv, from 'rtmp://server/live/matt-input live=1':
> Metadata:
> Server : NGINX RTMP (github.com/arut/nginx-rtmp-module)
> displayWidth : 1920
> displayHeight : 1080
> fps : 30
> profile :
> level :
> Duration: 00:00:00.00, start: 4.736000, bitrate: N/A
> Stream #0:0: Video: h264 (High), 3 reference frames, yuv420p(tv,
> bt709/bt709/iec61966-2-1), 1920x1080 (1920x1088) [SAR 1:1 DAR 16:9], 30.30
> fps, 30 tbr, 1k tbn, 60 tbc
> Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp
>
>
> It appears that NVENC has some incompatibility when it comes to rtmp that
> libx264 does not have. It's also interesting to note that if I use ffmpeg
> to encode the big buck bunny video and send it up to
> rtmp://server/live/matt-input, then I am able to successfully use NVENC to
> pull down the video and push it back up no problem. For reference, the BBB
> video is seen by FFMPEG as:
>
> Metadata:
> Server NGINX RTMP (github.com/arut/nginx-rtmp-module)
> width 1920.00
> height 1080.00
> displayWidth 1920.00
> displayHeight 1080.00
> duration 0.00
> framerate 60.00
> fps 60.00
> videodatarate 0.00
> videocodecid 7.00
> audiodatarate 125.00
> audiocodecid 1.00
> profile
> level
> Input #0, live_flv, from 'rtmp://server/live/matt-input live=1':
> Metadata:
> Server : NGINX RTMP (github.com/arut/nginx-rtmp-module)
> displayWidth : 1920
> displayHeight : 1080
> fps : 60
> profile :
> level :
> Duration: 00:00:00.00, start: 1.950000, bitrate: N/A
> Stream #0:0: Video: h264 (High), yuv420p(tv), 1920x1080 [SAR 1:1 DAR
> 16:9], 62.50 fps, 60 tbr, 1k tbn, 120 tbc
> Stream #0:1: Audio: adpcm_swf, 44100 Hz, stereo, s16, 352 kb/s
>
> Also, if needed I compiled FFMPEG using the instructions from
> http://developer.download.nvidia.com/compute/redist/ffmpeg/1511-patch/FFMPEG-with-NVIDIA-Acceleration-on-Ubuntu_UG_v01.pdf,
> and the beginning of the ffmpeg output looks like:
>
> # ffmpeg -i "rtmp://server/live/matt-input live=1" -vcodec nvenc -ar 44100
> -f flv "rtmp://server/live/matt-test1"
> ffmpeg version N-76538-gb83c849 Copyright (c) 2000-2015 the FFmpeg
> developers
> built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04)
> configuration: --enable-nonfree --enable-nvenc --enable-nvresize
> --extra-cflags=-I../cudautils --extra-ldflags=-L../cudautils --enable-gpl
> --enable-libx264 --enable-librtmp
> libavutil 55. 5.100 / 55. 5.100
> libavcodec 57. 15.100 / 57. 15.100
> libavformat 57. 14.100 / 57. 14.100
> libavdevice 57. 0.100 / 57. 0.100
> libavfilter 6. 15.100 / 6. 15.100
> libswscale 4. 0.100 / 4. 0.100
> libswresample 2. 0.101 / 2. 0.101
> libpostproc 54. 0.100 / 54. 0.100
>
>
> I have tried changing my OBS settings one at a time (both multi-platform
> and non-multiplatform versions) to no avail. Pulling from other streams
> seems to cause the same thing to happen, and the only stream I've been able
> to pull, transcode, then re-push via RTMP (via NVENC) seems to be one that
> originates straight from FFMPEG
>
> Does anyone have any suggestions on what might be wrong? Is there
> something on my end that is causing rtmp to fail or is it a bug in the
> NVENC encoder?
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
More information about the ffmpeg-user
mailing list