2016-10-26 12 views
1

Я пытаюсь разделить h264-кодированные данные от gstreamer на два других процесса (оба основаны на gstreamer). После некоторых исследований единственным способом, который я нашел, является использование плагина shm. это то, что я пытаюсь сделатьgstreamer shmsrc и shmsink с данными h264

gstreamer--->h264 encoder--->shmsink 
shmrc--->process1 
shmrc--->process2 

я был в состоянии получить исходные данные из videotestsrc и веб-камера работает. Но для кодированных h264 данных это не так. это мой тест трубопровод

gst-launch-1.0 videotestsrc ! video/x-raw,width=640,height=480,format=YUY2 ! 
x264enc ! shmsink  socket-path=/tmp/foo  sync=true  wait-for- 
connection=false  shm-size=10000000 

gst-launch-1.0 shmsrc socket-path=/tmp/foo ! avdec_h264 ! video/x- 
raw,width=640,height=480,framerate=25/1,format=YUY2 ! autovideosink 

есть кто-нибудь пробовал ше плагин с h264 кодированных данных, пожалуйста, помогите

ответ

2

Iam не знают о возможностях раковины, используемой в «autovideosink», но, как мне известен вы либо использовать видеоконвертер, если формат, поддерживаемый приемником (например, kmssink или ximagesink), отличается от источника (в вашем случае YUY2) или используется в режиме видеосъемки, если формат камеры поддерживается приемником. Вы можете проверить это с помощью gst-inspect-1.0 для поддерживаемых форматов.

В любом случае я могу запустить конвейер с некоторыми модификациями, используя videoconvert в моей установке:

./gst-launch-1.0 videotestsrc! x264enc! shmsink сокетов путь =/TMP/Foo синхронизации = верно поживем для-соединения = ложный шм размер = 10000000

./gst-launch-1.0 shmsrc сокетов путь =/TMP/Foo! h264parse! avdec_h264! видеоконвертер! ximagesink

Вы можете изменить его в соответствии с требуемыми вами разрешениями.

Пожалуйста, дайте мне знать, если вы столкнулись с какой-либо проблемой, описанной выше.

+0

Благодарим вас за указание на парсер h264. –

 Смежные вопросы

  • Нет связанных вопросов^_^