'FFmpeg saving rtmp live stream cuts off after 3 minutes
I was playing with ffmpeg and was able to save a live stream to a file. The command to do so is:
ffmpeg -re -i "rtmp://<ip addr>/livestream live=1" -f h264 test.flv
However, I have tested this twice, and both times ffmpeg stops after grabbing 3:28 worth of live video.
The entire output is here:
bash-4.2$ ffmpeg -re -i "rtmp://<ip addr>/livestream live=1" -vcodec libx264 -f h264 test.flv
WARNING: gnome-keyring:: couldn't connect to: /home/me/.cache/keyring-bpajcJ/pkcs11: No such file or directory
ffmpeg version 0.10.4 Copyright (c) 2000-2012 the FFmpeg developers
built on Jul 20 2012 22:01:52 with gcc 4.7.0 20120507 (Red Hat 4.7.0-5)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib --mandir=/usr/share/man --arch=i686 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables' --enable-bzlib --disable-crystalhd --enable-gnutls --enable-libass --enable-libcdio --enable-libcelt --enable-libdc1394 --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib --cpu=i686 --enable-runtime-cpudetect
libavutil 51. 35.100 / 51. 35.100
libavcodec 53. 61.100 / 53. 61.100
libavformat 53. 32.100 / 53. 32.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 61.100 / 2. 61.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 6.100 / 0. 6.100
libpostproc 52. 0.100 / 52. 0.100
WARNING: gnome-keyring:: couldn't connect to: /home/me/.cache/keyring-bpajcJ/pkcs11: No such file or directory
Metadata:
videocodecid avc1
width 320.00
height 240.00
frameWidth 320.00
frameHeight 240.00
displayWidth 320.00
displayHeight 240.00
framerate 29.97
trackinfo:
timescale 90000.00
language eng
sampledescription:
sampletype H264
type video
profile-level-id 42e00c
sprop-parameter-sets Z0LgDNoFB+wEQAAC7sAAr8gh,aM4zyA==
description {H264CodecConfigInfo: profile: "Baseline", level: 1.2, frameSize: 320x240, displaySize: 320x240, PAR: 1:1, frameRate: 29.97}
rtpsessioninfo:
name H264 Stream 1
origin - 1486490083 118668671 IN IP4 10.93.183.3
timing 0 0
protocolversion 0
attributes:
range npt=now-
[flv @ 0x9578ee0] Estimating duration from bitrate, this may be inaccurate
Input #0, flv, from 'rtmp://<ip addr>/livestream live=1':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: h264 (Constrained Baseline), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 14.99 tbr, 1k tbn, 59.94 tbc
[buffer @ 0x99ee900] w:320 h:240 pixfmt:yuv420p tb:1/1000000 sar:1/1 sws_param:
[libx264 @ 0x9584540] using SAR=1/1
[libx264 @ 0x9584540] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2
[libx264 @ 0x9584540] profile High, level 1.2
Output #0, h264, to 'test.flv':
Metadata:
encoder : Lavf53.32.100
Stream #0:0: Video: h264, yuv420p, 320x240 [SAR 1:1 DAR 4:3], q=-1--1, 90k tbn, 14.99 tbc
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> libx264)
Press [q] to stop, [?] for help
RTMP_ReadPacket, failed to read RTMP packet body. len: 16582bitrate= 212.1kbits/s
frame= 3111 fps= 15 q=-2.0 Lsize= 5385kB time=00:03:27.47 bitrate= 212.6kbits/s
video:5385kB audio:0kB global headers:0kB muxing overhead 0.000000%
[libx264 @ 0x9584540] frame I:13 Avg QP:18.70 size: 31866
[libx264 @ 0x9584540] frame P:1908 Avg QP:22.29 size: 2392
[libx264 @ 0x9584540] frame B:1190 Avg QP:29.24 size: 451
[libx264 @ 0x9584540] consecutive B-frames: 39.5% 24.0% 13.0% 23.4%
[libx264 @ 0x9584540] mb I I16..4: 0.2% 1.2% 98.6%
[libx264 @ 0x9584540] mb P I16..4: 0.0% 0.0% 0.7% P16..4: 22.0% 3.5% 2.6% 0.0% 0.0% skip:71.2%
[libx264 @ 0x9584540] mb B I16..4: 0.0% 0.0% 0.2% B16..8: 15.6% 2.8% 1.1% direct: 1.3% skip:78.9% L0:47.0% L1:42.2% BI:10.8%
[libx264 @ 0x9584540] 8x8 transform intra:2.2% inter:8.5%
[libx264 @ 0x9584540] coded y,uvDC,uvAC intra: 98.0% 94.9% 73.9% inter: 14.5% 16.0% 11.3%
[libx264 @ 0x9584540] i16 v,h,dc,p: 0% 50% 17% 33%
[libx264 @ 0x9584540] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 7% 21% 11% 3% 13% 6% 21% 4% 14%
[libx264 @ 0x9584540] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 11% 21% 14% 5% 11% 7% 14% 5% 12%
[libx264 @ 0x9584540] i8c dc,h,v,p: 65% 15% 10% 10%
[libx264 @ 0x9584540] Weighted P-Frames: Y:0.5% UV:0.1%
[libx264 @ 0x9584540] ref P L0: 80.8% 10.4% 7.6% 1.2% 0.0%
[libx264 @ 0x9584540] ref B L0: 94.9% 4.8% 0.2%
[libx264 @ 0x9584540] ref B L1: 96.4% 3.6%
[libx264 @ 0x9584540] kb/s:212.48
Although I don't see any errors. It just looks like ffmpeg thought the stream had ended? But that's not possible since it's a live stream.
Solution 1:[1]
This is most likely related to swf verification being performed on the server side (see 'swfVfy' flag). You could try something as follows and see if the stream gets further.
ffmpeg -i "rtmp:///livestream live=1 swfVfy=1 swfUrl=url_to_the flash_player_here" -y test.flv
Unfortunately though, in my case I could not get ffmpeg's swfVfy to work, and have exapmles of the same streams working fine with rtmpdump.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | user1995010 |