как записывать поток в файл при использовании appsink с помощью gstreamer - PullRequest
0 голосов
/ 09 июля 2020

Я использую следующую команду для получения «события кадра» в моем коде на C ++ и от gstreamer:

gst-launch-1.0.exe -vv udpsrc port=5000 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96 ! rtph264depay ! decodebin ! videoconvert ! video/x-raw,format=BGR ! videoconvert ! appsink name=sink

, и он работает нормально. запись с использованием тройника. Я пробовал:

gst-launch-1.0.exe -vv udpsrc port=5000 ! tee name=t t. ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96 ! queue ! rtph264depay ! decodebin ! videoconvert ! appsink ! t. ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96 ! queue ! rtph264depay ! h264parse ! mp4mux ! filesink location=test.mp4

, например, но получаю эту ошибку:

WARNING: erroneous pipeline: syntax error

Я не понимаю, как использовать тройник. каждая часть работает нормально сама по себе, но когда я использую тройник, он не работает.

какой синтаксис правильный?

(в моем коде вместо использования gstlaunch-1.0.exe i я использую gst_parse_launch)

1 Ответ

1 голос
/ 10 июля 2020

В вашей трубе есть ! между элементами appsink и t (тройник). Это связывает их. Вы хотите, чтобы ветви были разделены.

gst-launch-1.0.exe -vv udpsrc port=5000 ! tee name=t t. ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96 ! queue ! rtph264depay ! decodebin ! videoconvert ! appsink   t. ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96 ! queue ! rtph264depay ! h264parse ! mp4mux ! filesink location=test.mp4

Небольшое примечание: Добавление заглушек перед тройником будет более практичным, чтобы вам не пришлось писать его дважды.

gst-launch-1.0 -vv udpsrc port=5000 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96 ! tee name=t t. ! queue ! rtph264depay ! decodebin ! videoconvert ! appsink  t. ! queue ! rtph264depay ! h264parse ! mp4mux ! filesink location=test.mp4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...