[FFmpeg-user] Maximum argument length for tee pseudo muxer

luke harrison looxonline at gmail.com
Wed Mar 22 11:16:10 EET 2017


I'm preparing a script to take a feed coming in over SDI and encode it into
multiple video and audio streams, all for distribution to different stream
paths using the tee muxer.

I'm sending quite a few different mixes of the streams to an RTMP server
which means that my tee muxer is taking quite a large argument. My command
line is shown below.

ffmpeg -threads 0 -f decklink -i 'UltraStudio Mini Recorder at 11' -loglevel
debug \

-filter_complex
"[0:v]split=2[VID1][VID2];[0:a]channelsplit=channel_layout=stereo[AL][AR]"
-map '[AR]' -map '[AL]' -map '[VID1]' -map '[VID2]' -flags +global_header
-c:v libx264 -profile:v high -preset veryfast -pix_fmt yuv420p -r 25 -s:v:0
640x360 -s:v:1 426x240  -b:v:0 484k -b:v:1 215k -bufsize 1500k -coder 1 -g
125 -keyint_min 25 -c:a aac -b:a 64k -ar 44100 -async 1 -rtmp_flashver
"FMLE/3.0(compatible;FMSc/1.0)" -rtmp_live live -f tee
"[select=\'a:0,v:0\':f=flv]'${entrypoint}${streampath1}${datavid11}'|
\

    [select=\'a:1,v:0\':f=flv]'${entrypoint}${streampath2}${datavid11}'| \

    [select=\'a:0,v:1\':f=flv]'${entrypoint}${streampath1}${datavid12}'| \

    [select=\'a:1,v:1\':f=flv]'${entrypoint}${streampath2}${datavid12}'| \

    [select=\'a:0\':f=flv]'${entrypoint}${streampath1}${dataaud11}'| \

    [select=\'a:1\':f=flv]'${entrypoint}${streampath2}${dataaud11}'"

All of the output streams up until the last one (with a:1) connect to the
server and begin streaming. The issue comes when ffmpeg tries to connect to
the final stream. The stream path is cut off for some reason. This results
in ffmpeg trying to connect to a stream path that is incomplete and
therefore failing.

[tcp @ 0x7fa0dc414180] Failed to resolve hostname p.epXXXXXX.i.ak: nodename
nor servname provided, or not known

[rtmp @ 0x7fa0dc414100] Cannot open connection tcp://p.epXXXXX.i.ak:1935

[tee @ 0x7fa0de801800] Slave
'[select='a:1':f=flv]rtmp://XXXXXXX:XXXXXXX@p.epXXXXXX.i.ak': error
opening: Input/output error

[tee @ 0x7fa0de801800] Slave muxer #5 failed, aborting.

I have confirmed that removing characters within the inverted commas ("")
after the tee statement allows more of the stream path to be processed by
ffmpeg and inversely adding characters within the "" results in less of the
stream path being processed by ffmpeg. The characters can be related to any
of the commands within the "" and don't need to specifically be any part of
the stream paths.

To me this looks as if the tee muxer has an undocumented, maximum character
input limit for the argument that it takes within the inverted commas.
Would any devs or users be able to confirm this based on experience/a
deeper knowledge of the code?

-- 

Kind regards,
Luke Harrison


More information about the ffmpeg-user mailing list