Мне нужно, чтобы gstreamer брал видео из URI rtsp и отправлял видео на stdout, чтобы имитировать подобное поведение с помощью беглого ffmpeg.
Я могу сделать это на терминале (и получить необработанные двоичные данные), но, находясь внутри узла, я получаю:
"ошибочная синтаксическая ошибка конвейера".
gst-launch-1.0 uridecodebin silent=true uri=rtsp://192.168.x.x:8800/test.stm ! fdsink fd=1
когда указанная выше команда используется с «autovideosink», я могу просматривать видео.
Причина, по которой мне нужно использовать stdout, заключается в том, что существующее приложение использует fluent-ffmpeg ион использует "pipe: 1", что в основном то же самое.Я хочу вызвать возможное нарушение работы существующего приложения.
Внутри приложения узла я вызываю gst-lauch-1.0 с помощью команды spawn, как в:
var gstreamerProc = spawn(command, args, options);
где:
command: '/usr/bin/gst-launch-1.0'
args: ["uridecodebin","silent=true","uri=rtsp://192.168.x.x:8800/test.stm","!","queue","! fdsink fd=0"]
options: {"captureStdout":false,"niceness":0}"
И в оригинальном файле fluent-ffmpeg / lib / processor.js этот комментарий описывает значения, найденные в "options"
/*
:
* The 'options' argument may contain the following keys:
* - 'niceness': specify process niceness, ignored on Windows (default: 0)
* - `cwd`: change working directory
* - 'captureStdout': capture stdout and pass it to 'endCB' as its 2nd argument (default: false)
* - 'stdoutLines': override command limit (default: use command limit)
*
:
*/
Как я уже говорил выше, в командной строкеработает на обычном терминале, без ошибок, без предупреждений, когда он помещается внутри Node.js, он выдает
«ошибочный конвейерный синтаксис»
предупреждение.Любая помощь в решении этой проблемы очень ценится.