[FFmpeg-user] Broken video in rtmp stream to Wowza using tee pseudo-muxer
Erwin Eggenberger
eeggenberger+ffmpeg at techcast.com
Thu Feb 1 15:02:56 EET 2018
Oops! Forgot to remove the credentials for the rtmp stream from the
command output. Already changed it ;-)
Am 01.02.2018 um 13:52 schrieb Erwin Eggenberger:
> Hi Carl Eugen,
>
> I finally had the chance to look into this again. Here's the command and
> its output that isn't working:
>
> ffmpeg -y -v info -f x11grab -draw_mouse 0 -r 25 -s 1280x720 \
> -thread_queue_size 4096 -i :0.0+0,0 -f alsa -thread_queue_size 4096 \
> -i hw:0,1,0 -acodec aac -strict -2 -ar 44100 -c:v libx264 -preset
> veryfast \
> -maxrate 2976k -bufsize 5952k -pix_fmt yuv420p -r 25 -crf 25 -g 50 \
> -tune zerolatency \
> -f tee -map 0:v -map 1:a \
> "[f=flv]rtmp://user:password@wowza-server.tld:1935/live/tcfw_demo_db728"
>
> Output:
> ffmpeg version N-89907-g293f24b Copyright (c) 2000-2018 the FFmpeg
> developers
> built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609
> configuration: --prefix=/home/eeggenberger/ffmpeg_build
> --pkg-config-flags=--static
> --extra-cflags=-I/home/eeggenberger/ffmpeg_build/include
> --extra-ldflags=-L/home/eeggenberger/ffmpeg_build/lib
> --extra-libs='-lpthread -lm' --bindir=/home/eeggenberger/bin
> --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype
> --enable-libmp3lame --enable-libopus --enable-libtheora
> --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
> --enable-nonfree
> libavutil 56. 7.100 / 56. 7.100
> libavcodec 58. 9.100 / 58. 9.100
> libavformat 58. 6.100 / 58. 6.100
> libavdevice 58. 0.101 / 58. 0.101
> libavfilter 7. 11.101 / 7. 11.101
> libswscale 5. 0.101 / 5. 0.101
> libswresample 3. 0.101 / 3. 0.101
> libpostproc 55. 0.100 / 55. 0.100
> [x11grab @ 0x35aaf80] Stream #0: not enough frames to estimate rate;
> consider increasing probesize
> Input #0, x11grab, from ':0.0+0,0':
> Duration: N/A, start: 1517487900.599421, bitrate: N/A
> Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1280x720, 25
> fps, 1000k tbr, 1000k tbn, 1000k tbc
> Guessed Channel Layout for Input Stream #1.0 : stereo
> Input #1, alsa, from 'hw:0,1,0':
> Duration: N/A, start: 1517487900.643670, bitrate: 1536 kb/s
> Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
> Stream mapping:
> Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
> Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))
> Press [q] to stop, [?] for help
> [libx264 @ 0x35c84c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
> AVX FMA3 BMI2 AVX2
> [libx264 @ 0x35c84c0] profile High, level 3.1
> [rtmp @ 0x3fda200] Ignoring unsupported var reason
> Output #0, tee, to
> '[f=flv]rtmp://techcast:oleander@cdn.techcast.com:1935/live/tcfw_demo_db728':
> Metadata:
> encoder : Lavf58.6.100
> Stream #0:0: Video: h264 (libx264), yuv420p(progressive), 1280x720,
> q=-1--1, 25 fps, 25 tbn, 25 tbc
> Metadata:
> encoder : Lavc58.9.100 libx264
> Side data:
> cpb: bitrate max/min/avg: 2976000/0/0 buffer size: 5952000
> vbv_delay: -1
> Stream #0:1: Audio: aac (LC), 44100 Hz, stereo, fltp, 128 kb/s
> Metadata:
> encoder : Lavc58.9.100 aac
> frame= 12 fps=0.0 q=24.0 size=N/A time=00:00:00.48 bitrate=N/A
> speed=0.943x
> frame= 25 fps= 25 q=23.0 size=N/A time=00:00:01.00 bitrate=N/A
> speed=0.987x
> frame= 37 fps= 24 q=23.0 size=N/A time=00:00:01.48 bitrate=N/A
> speed=0.973x
> ... similar messages repeated ...
> frame= 2818 fps= 25 q=23.0 size=N/A time=00:01:52.72 bitrate=N/A speed=
> 1x
> frame= 2830 fps= 25 q=23.0 size=N/A time=00:01:53.20 bitrate=N/A speed=
> 1x
> frame= 2843 fps= 25 q=23.0 size=N/A time=00:01:53.72 bitrate=N/A speed=
> 1x
> [flv @ 0x3fd7f00] Failed to update header with correct duration.
> [flv @ 0x3fd7f00] Failed to update header with correct filesize.
> frame= 2855 fps= 25 q=23.0 Lsize=N/A time=00:01:54.20 bitrate=N/A speed=
> 1x
> video:9655kB audio:1790kB subtitle:0kB other streams:0kB global
> headers:0kB muxing overhead: unknown
> [libx264 @ 0x35c84c0] frame I:58 Avg QP:17.26 size: 48561
> [libx264 @ 0x35c84c0] frame P:2797 Avg QP:18.06 size: 2528
> [libx264 @ 0x35c84c0] mb I I16..4: 24.2% 40.0% 35.9%
> [libx264 @ 0x35c84c0] mb P I16..4: 2.5% 0.2% 0.0% P16..4: 23.1%
> 2.4% 0.5% 0.0% 0.0% skip:71.2%
> [libx264 @ 0x35c84c0] 8x8 transform intra:21.9% inter:16.9%
> [libx264 @ 0x35c84c0] coded y,uvDC,uvAC intra: 37.3% 79.3% 43.8% inter:
> 0.6% 21.5% 0.5%
> [libx264 @ 0x35c84c0] i16 v,h,dc,p: 50% 24% 21% 6%
> [libx264 @ 0x35c84c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 11% 22% 22% 6% 6%
> 2% 16% 5% 10%
> [libx264 @ 0x35c84c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 24% 12% 6% 8%
> 4% 19% 5% 8%
> [libx264 @ 0x35c84c0] i8c dc,h,v,p: 54% 23% 19% 5%
> [libx264 @ 0x35c84c0] Weighted P-Frames: Y:0.0% UV:0.0%
> [libx264 @ 0x35c84c0] kb/s:692.58
> [aac @ 0x35c9780] Qavg: 247.443
> Exiting normally, received signal 2.
>
> For comparison, this is the working command without tee:
>
> ffmpeg -y -v info -f x11grab -draw_mouse 0 -r 25 -s 1280x720 \
> -thread_queue_size 4096 -i :0.0+0,0 -f alsa -thread_queue_size 4096 \
> -i hw:0,1,0 -acodec aac -strict -2 -ar 44100 -c:v libx264 -preset
> veryfast \
> -maxrate 2976k -bufsize 5952k -pix_fmt yuv420p -r 25 -crf 25 -g 50 \
> -tune zerolatency \
> -f flv rtmp://user:password@wowza-server.tld:1935/live/tcfw_demo_db728
>
> Output:
> ffmpeg version N-89907-g293f24b Copyright (c) 2000-2018 the FFmpeg
> developers
> built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609
> configuration: --prefix=/home/eeggenberger/ffmpeg_build
> --pkg-config-flags=--static
> --extra-cflags=-I/home/eeggenberger/ffmpeg_build/include
> --extra-ldflags=-L/home/eeggenberger/ffmpeg_build/lib
> --extra-libs='-lpthread -lm' --bindir=/home/eeggenberger/bin
> --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype
> --enable-libmp3lame --enable-libopus --enable-libtheora
> --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
> --enable-nonfree
> libavutil 56. 7.100 / 56. 7.100
> libavcodec 58. 9.100 / 58. 9.100
> libavformat 58. 6.100 / 58. 6.100
> libavdevice 58. 0.101 / 58. 0.101
> libavfilter 7. 11.101 / 7. 11.101
> libswscale 5. 0.101 / 5. 0.101
> libswresample 3. 0.101 / 3. 0.101
> libpostproc 55. 0.100 / 55. 0.100
> [x11grab @ 0x3ffbf40] Stream #0: not enough frames to estimate rate;
> consider increasing probesize
> Input #0, x11grab, from ':0.0+0,0':
> Duration: N/A, start: 1517487760.405432, bitrate: N/A
> Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1280x720, 25
> fps, 1000k tbr, 1000k tbn, 1000k tbc
> Guessed Channel Layout for Input Stream #1.0 : stereo
> Input #1, alsa, from 'hw:0,1,0':
> Duration: N/A, start: 1517487760.451644, bitrate: 1536 kb/s
> Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
> [rtmp @ 0x401d4c0] Ignoring unsupported var reason
> Stream mapping:
> Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
> Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))
> Press [q] to stop, [?] for help
> [libx264 @ 0x4019740] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
> AVX FMA3 BMI2 AVX2
> [libx264 @ 0x4019740] profile High, level 3.1
> [libx264 @ 0x4019740] 264 - core 155 - H.264/MPEG-4 AVC codec - Copyleft
> 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=1
> deblock=1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00
> mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0
> deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4
> lookahead_threads=4 sliced_threads=1 slices=4 nr=0 decimate=1
> interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=1
> keyint=50 keyint_min=5 scenecut=40 intra_refresh=0 rc_lookahead=0 rc=crf
> mbtree=0 crf=25.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=2976
> vbv_bufsize=5952 crf_max=0.0 nal_hrd=none filler=0 ip_ratio=1.40 aq=1:1.00
> Output #0, flv, to
> 'rtmp://techcast:oleander@cdn.techcast.com:1935/live/tcfw_demo_db728':
> Metadata:
> encoder : Lavf58.6.100
> Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007),
> yuv420p(progressive), 1280x720, q=-1--1, 25 fps, 1k tbn, 25 tbc
> Metadata:
> encoder : Lavc58.9.100 libx264
> Side data:
> cpb: bitrate max/min/avg: 2976000/0/0 buffer size: 5952000
> vbv_delay: -1
> Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz,
> stereo, fltp, 128 kb/s
> Metadata:
> encoder : Lavc58.9.100 aac
> frame= 18 fps=0.0 q=24.0 size= 98kB time=00:00:00.69
> bitrate=1155.1kbits/s speed=1.37x
> frame= 31 fps= 31 q=22.0 size= 130kB time=00:00:01.21 bitrate=
> 882.0kbits/s speed=1.19x
> frame= 43 fps= 28 q=21.0 size= 160kB time=00:00:01.72 bitrate=
> 762.1kbits/s speed=1.13x
> frame= 56 fps= 28 q=23.0 size= 232kB time=00:00:02.20 bitrate=
> 859.9kbits/s speed=1.09x
> ... similar messages repeated ...
> frame= 1294 fps= 25 q=21.0 size= 4190kB time=00:00:51.73 bitrate=
> 663.5kbits/s speed= 1x
> frame= 1307 fps= 25 q=23.0 size= 4266kB time=00:00:52.24 bitrate=
> 668.9kbits/s speed= 1x
> frame= 1320 fps= 25 q=23.0 size= 4299kB time=00:00:52.76 bitrate=
> 667.5kbits/s speed= 1x
> [flv @ 0x4017780] Failed to update header with correct duration.
> [flv @ 0x4017780] Failed to update header with correct filesize.
> frame= 1322 fps= 25 q=23.0 Lsize= 4306kB time=00:00:52.87 bitrate=
> 667.1kbits/s speed= 1x
> video:3409kB audio:829kB subtitle:0kB other streams:0kB global
> headers:0kB muxing overhead: 1.602683%
> [libx264 @ 0x4019740] frame I:27 Avg QP:16.74 size: 46784
> [libx264 @ 0x4019740] frame P:1295 Avg QP:17.30 size: 1720
> [libx264 @ 0x4019740] mb I I16..4: 24.8% 39.7% 35.5%
> [libx264 @ 0x4019740] mb P I16..4: 1.6% 0.1% 0.0% P16..4: 16.4%
> 1.5% 0.4% 0.0% 0.0% skip:80.1%
> [libx264 @ 0x4019740] 8x8 transform intra:23.7% inter:13.0%
> [libx264 @ 0x4019740] coded y,uvDC,uvAC intra: 45.7% 75.0% 38.4% inter:
> 0.3% 14.4% 0.1%
> [libx264 @ 0x4019740] i16 v,h,dc,p: 59% 20% 16% 5%
> [libx264 @ 0x4019740] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 11% 23% 16% 7% 6%
> 2% 17% 6% 11%
> [libx264 @ 0x4019740] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 24% 12% 6% 8%
> 4% 18% 5% 8%
> [libx264 @ 0x4019740] i8c dc,h,v,p: 52% 24% 20% 5%
> [libx264 @ 0x4019740] Weighted P-Frames: Y:0.0% UV:0.0%
> [libx264 @ 0x4019740] kb/s:528.04
> [aac @ 0x401aa00] Qavg: 248.935
> Exiting normally, received signal 2.
>
> I've already used diff to find differences in the output, but there
> isn't anything obvious. I only noticed that the line starting with "264
> - core 155 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018" doesn't show
> up in the output when I use tee. Everything else looks more or less the
> same.
>
> Regards,
>
> Erwin
>
> Am 25.01.2018 um 11:21 schrieb Carl Eugen Hoyos:
>> 2018-01-24 16:36 GMT+01:00 Erwin Eggenberger <eeggenberger+ffmpeg at techcast.com>:
>>
>>> When I just upload the stream without the tee muxer, everything works as
>>> expected, but with tee I only get audio but no video. In the Wowza logs
>>> I can see errors like this:
>>> H264Utils.decodeAVCC : java.lang.ArrayIndexOutOfBoundsException
>>>
>>> Sounds to me like there's something wrong with the h.264 video. The
>>> ffmpeg command looks like this:
>>>
>>> ffmpeg -y -v info -f x11grab -draw_mouse 0 -r 25 -s 1280x720
>>> -thread_queue_size 4096 -i :0.0+0,0 -f alsa \
>>> -thread_queue_size 4096 -i hw:0,1,0 -acodec aac -strict -2 -ar 44100
>>> -c:v libx264 -preset veryfast \
>>> -maxrate 2976k -bufsize 5952k -pix_fmt yuv420p -r 25 -crf 25 -g 50
>>> -tune zerolatency \
>>> -f tee -map 0:v -map 1:a
>>> "[f=flv]rtmp://user:password@servername:1935/live/test_stream"
>>
>> Please also provide the complete, uncut console output.
>>
>> Carl Eugen
>> _______________________________________________
>> ffmpeg-user mailing list
>> ffmpeg-user at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>>
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>
More information about the ffmpeg-user
mailing list