Opened 5 years ago
Closed 5 years ago
#9268 closed defect (invalid)
return code 0 when SRT stream fails
| Reported by: | Elliott | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | avformat |
| Version: | git-master | Keywords: | libsrt |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
When ffmpeg is playing an SRT stream and that stream disappears (network issue, etc.), I believe it should exit with an error code, so that external scripts can respond appropriately. Instead it returns 0.
On the other hand, if I try to start ffmpeg with a bad SRT URL, it returns 1 which makes sense.
$ /usr/local/bin/ffmpeg -re -i "srt://192.168.4.3:8888?transtype=live&recv_buffer_size=1M&ffs=1048576" -codec copy -f mpegts pipe:1 > pipe.ts
ffmpeg version git-2021-05-20-ab658db4 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 8 (Raspbian 8.3.0-6+rpi1)
configuration: --enable-libx264 --enable-libx265 --enable-libsrt --enable-gpl --enable-libopus --enable-shared --enable-omx-rpi --enable-mmal --extra-cflags='-march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8 -mneon-for-64bits'
libavutil 57. 0.100 / 57. 0.100
libavcodec 59. 1.100 / 59. 1.100
libavformat 59. 2.100 / 59. 2.100
libavdevice 59. 0.100 / 59. 0.100
libavfilter 8. 0.101 / 8. 0.101
libswscale 6. 0.100 / 6. 0.100
libswresample 4. 0.100 / 4. 0.100
libpostproc 56. 0.100 / 56. 0.100
[aac @ 0x1563d70] Assuming an incorrectly encoded 7.1 channel layout instead of a spec-compliant 7.1(wide) layout, use -strict 1 to decode according to the specification instead.
[aac @ 0x1563d70] This stream seems to incorrectly report its last channel as SCE[7], mapping to LFE[0]
[hevc @ 0x1563390] PPS id out of range: 0
Last message repeated 1 times
[hevc @ 0x1563390] Error parsing NAL unit #2.
[hevc @ 0x1563390] PPS id out of range: 0
Last message repeated 1 times
[hevc @ 0x1563390] Error parsing NAL unit #2.
[hevc @ 0x1563390] PPS id out of range: 0
Last message repeated 1 times
[hevc @ 0x1563390] Error parsing NAL unit #2.
[hevc @ 0x1563390] PPS id out of range: 0
Last message repeated 1 times
[hevc @ 0x1563390] Error parsing NAL unit #2.
[hevc @ 0x1563390] PPS id out of range: 0
Last message repeated 1 times
[hevc @ 0x1563390] Error parsing NAL unit #2.
Input #0, mpegts, from 'srt://192.168.4.3:8888?transtype=live&recv_buffer_size=1M&ffs=1048576':
Duration: N/A, start: 27.769333, bitrate: N/A
Program 1
Stream #0:0[0x3e9]: Video: hevc (Main 10) ([36][0][0][0] / 0x0024), yuv420p10le(tv), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn
Stream #0:1[0x3ea]: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, 7.1, fltp, 319 kb/s
Output #0, mpegts, to 'pipe:1':
Metadata:
encoder : Lavf59.2.100
Stream #0:0: Video: hevc (Main 10) ([36][0][0][0] / 0x0024), yuv420p10le(tv), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps, 23.98 tbr, 90k tbn
Stream #0:1: Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, 7.1, fltp, 319 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
srt://192.168.4.3:8888?transtype=live&recv_buffer_size=1M&ffs=1048576: Input/output error1.01x
frame= 128 fps= 23 q=-1.0 Lsize= 20904kB time=00:00:05.54 bitrate=30873.8kbits/s speed=1.01x
video:20193kB audio:217kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.424097%
$ echo $?
0
Change History (2)
comment:1 by , 5 years ago
| Component: | undetermined → avformat |
|---|---|
| Keywords: | libsrt added |
| Version: | unspecified → git-master |
comment:2 by , 5 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
Note:
See TracTickets
for help on using tickets.



This looks invalid, if you don't specify -xerror then don't expect ffmpeg to report input errors as failure.
The usecase seems fishy as well. If ffmpeg quits during a live stream session, how can that be a success? Also -re is harmful for such use, and for passing through mpegts stream from srt, you are most probably better off with srt-live-transmit, remuxing the stream is not necessary / harmful in fact.