Hello,
I am trying to setup an SRT server. First, we are dealing with live continuos
streams, not files. I can get the connection setup easily enough and move the
streams fine.
I am grabbing a UDP multicast stream from one site and uploading to another
site. Output at remote site is UDP. The transmitting server is setup as the
listener with the remote server as the caller. I am running into 2 issues.
---------------------------------------------------------------------------------------------------
1. When setting up the connection, the listener side starts having circular
buffer overruns if the caller doesn't connect within the first few seconds of
the listener being started. I added overrun_nonfatal but found that even after
the caller connects, the listener is still in an overrun state.
Is there a way to purge the buffer once an overrun is reached? I simply want
the stream to be available whenever the caller "dials in". So the listener
should be available 24x7 even if the caller is offline for a few hours.
====Output from the listener showing this problem:
user@hostname:~$ ffmpeg -fflags +genpts -re -i
'udp://x.x.x.x:xxxxx?overrun_nonfatal=1' -acodec copy -vcodec copy -strict -2
-y -f mpegts
'srt://y.y.y.y:yyyypkt_size=1316&mode=listener&passphrase=xxxxxxxxxxxx&pbkeylen=32'
ffmpeg version N-95534-gac0f5f4 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
configuration: --prefix=/home/circle/ffmpeg_build --pkg-config-flags=--static
--extra-cflags=-I/home/circle/ffmpeg_build/include
--extra-ldflags=-L/home/circle/ffmpeg_build/lib --extra-libs='-lpthread -lm'
--bindir=/home/circle/bin --enable-libsrt --enable-gpl --enable-libass
--enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libvorbis
--enable-libx264 --enable-libx265 --enable-nonfree
libavutil 56. 35.101 / 56. 35.101
libavcodec 58. 59.102 / 58. 59.102
libavformat 58. 33.100 / 58. 33.100
libavdevice 58. 9.100 / 58. 9.100
libavfilter 7. 64.100 / 7. 64.100
libswscale 5. 6.100 / 5. 6.100
libswresample 3. 6.100 / 3. 6.100
libpostproc 55. 6.100 / 55. 6.100
[mpeg2video @ 0x563bb1a8fa00] Invalid frame dimensions 0x0.
Last message repeated 21 times
Input #0, mpegts, from 'udp://x.x.x.x:xxxx?overrun_nonfatal=1':
Duration: N/A, start: 71228.181744, bitrate: N/A
Program 3
Stream #0:0[0x31]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
yuv420p(tv, top first), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 29.97
fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0x34](eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz,
5.1(side), fltp, 384 kb/s
Stream #0:2[0x35](spa): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz,
stereo, fltp, 96 kb/s (visual impaired) (descriptions)
Output #0, mpegts, to
'srt://y.y.y.y:yyyy?pkt_size=1316&mode=listener&passphrase=xxxxxxxxxx&pbkeylen=32':
Metadata:
encoder : Lavf58.33.100
Stream #0:0: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv,
top first), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 29.97 fps, 29.97 tbr, 90k
tbn, 90k tbc
Stream #0:1(eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz,
5.1(side), fltp, 384 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[udp @ 0x563bb1a8a0c0] Circular buffer overrun. Surviving due to
overrun_nonfatal option 1x
Last message repeated 105 times
[udp @ 0x563bb1a8a0c0] Circular buffer overrun. Surviving due to
overrun_nonfatal option 1x
Last message repeated 37 times
[mpegts @ 0x563bb1a89540] PES packet size mismatch:00:19.71
bitrate=6787.4kbits/s speed= 1x
Last message repeated 1 times
frame= 815 fps= 28 q=-1.0 size= 23899kB time=00:00:28.81
bitrate=6793.4kbits/s speed= 1x
-------------------------------------------------------------------------------------------------------------------------
2. When I kill the caller side ffmpeg process, the listener side exits ffmpeg
as well.
Is there a way to make this survivable so the listener stays available?
====Remaining output (continuation from above) from the listener side when the
caller connection ends:
[udp @ 0x563bb1a8a0c0] Circular buffer overrun. Surviving due to
overrun_nonfatal option 1x
Last message repeated 39 times
[mpegts @ 0x563bb1a89540] PES packet size mismatch
Last message repeated 1 times
[srt @ 0x563bb1afbf80] Operation not supported: Invalid socket
IDte=6348.0kbits/s speed= 1x
av_interleaved_write_frame(): Unknown error occurred
Error writing trailer of
srt://y.y.y.y:yyyy?pkt_size=1316&mode=listener&passphrase=xxxxxxxxxx&pbkeylen=32:
Unknown error occurred
frame= 5223 fps= 29 q=-1.0 Lsize= 137315kB time=00:02:57.26
bitrate=6345.6kbits/s speed= 1x
video:124754kB audio:8215kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: 3.268119%
Conversion failed!
---------------------------------------------------------------------------------------------------------------------------
The transmit/listener (server) side command being used:
ffmpeg -fflags +genpts -re -i 'udp://x.x.x.x:xxxx?overrun_nonfatal=1' -acodec
copy -vcodec copy -strict -2 -y -f mpegts
'srt://y.y.y.y:yyyy?pkt_size=1316&mode=listener&passphrase=xxxxxxxxxxxx&pbkeylen=32'
The receiving/caller (client) side command being used:
ffmpeg -re -i
'srt://y.y.y.y:yyyy?pkt_size=1316&mode=caller&passphrase=xxxxxxxxxx' -vcodec
copy -acodec copy -strict -2 -y -f mpegts 'udp://z.z.z.z:zzzz?pkt_size=1316'
Thanks in advance for any help provided.
-Jimbo
CONFIDENTIALITY NOTICE: This e-mail including attachments is covered by the
Electronic Communications Privacy Act, 18 U.S.C. ยงยง2510-2521, is confidential
and may contain information that is privileged, confidential or otherwise
protected from use and disclosure. If you are not the intended recipient, you
are hereby notified that any review, disclosure, copying, or dissemination of
this transmission, or taking of any action in reliance on its contents, or
other use is strictly prohibited. If you have received this transmission in
error, please reply to the sender listed above immediately and permanently
delete this message from your inbox.
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".