[FFmpeg-user] Possible bug in TEE muxer.

Moritz Barsnick barsnick at gmx.net
Tue Jul 18 02:20:02 EEST 2017


On Mon, Jul 17, 2017 at 14:57:37 +0100, Alex Molon wrote:

> # ffmpeg -v verbose -i udp://226.45.23.147:2001 -c:v h264_nvenc -c:a aac -strict 2 -f tee -map 0 [f=mpegts:hls_segment_filename=sftp://compliance:complitest@localhost/home/auser/test/test.ts]sftp://compliance:complitest@localhost/home/auser/test/test.m3u8

> And the result is always the same:
> 
> [tee @ 0x556de1794140] No option found near "//compliance:complitest at localhost/home/auser/test/test.ts]sftp://compliance:complitest@localhost/home/auser/test/test.m3u8"
> [tee @ 0x556de1794140] All tee outputs failed.
> 
> I've tried with single, double and triple escape before the ":" signs (how suggested in https://trac.ffmpeg.org/ticket/5692 regarding something similar) but the result is always the same :(

I tried it like this, and it works:

$ ffmpeg -re -f lavfi -i testsrc2 -c:v libx264 -t 33 -map 0 -f tee -use_localtime 1 "[f=hls:use_localtime=1:hls_segment_filename='sftp\://user\:password at sunshine/home/user/tmp/sftp-%Y-%m-%d-%H-%M-%S']sftp://user:password@sunshine/home/user/tmp/sftp.m3u8"

This also works - this is your approach, but you don't use *any*
quotation marks. That's something I would avoid, as soon as e.g. square
brackets come into play. That's probably why you need *even more*
(four) backslashes - for the shell this time.

$ ffmpeg -re -f lavfi -i testsrc2 -c:v libx264 -t 33 -map 0 -f tee -use_localtime 1 [f=hls:use_localtime=1:hls_segment_filename=sftp\\\\://user\\\\:password at sunshine/home/user/tmp/sftp-%Y-%m-%d-%H-%M-%S]sftp://user:password@sunshine/home/user/tmp/sftp.m3u8

BTW:
- "f=mpegts" is incorrect, as you wanted hls (as in the original, non-tee
  command line).
- "-strict 2" doesn't do anything. The native aac encoder used to
  require "-strict -2", but no longer does. But that was a "minus two".
  ;-)

So proud that I got it to work :-D
Moritz


More information about the ffmpeg-user mailing list