2016-10-26 7 views
1

gstreamer에서 h264로 인코딩 된 데이터를 다른 두 프로세스 (gstreamer를 기반으로 함)와 공유하려고합니다. 일부 연구 방법은 shm 플러그인을 사용하는 것입니다. 이 내가 gstreamer shmsrc와 h264 데이터로 shmsink

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 

이 누구 시도 SHM 플러그인과 H264 인코딩 된 데이터는,

답변

2

스피 "autovideosink"에 사용 된 싱크대의 기능을 인식하지를, 도움이되지만 제발 내 지식에 따라 당신 싱크에서 지원하는 형식 (예 : kmssink 또는 ximagesink)이 원본 (사용자 YUY2)에서 제공 한 형식과 다른 경우 videoconvert를 사용해야하며, 싱크에서 카메라 형식을 지원하는 경우 videoparse를 사용해야합니다. 지원되는 형식에 대해 gst-inspect-1.0을 사용하여 확인할 수 있습니다.

./gst-launch-1.0 videotestsrc :

은 어쨌든 난 내 설정에서 videoconvert를 사용하여 일부 수정하여 파이프 라인을 실행할 수 있어요! x264enc! shmsink 소켓 경로 =/tmp를/foo는 동기 = 사실 대기-연결 = 거짓 SHM-크기 = 10000000

./gst-launch-1.0 shmsrc 소켓 경로 =/tmp를/foo는! h264parse! avdec_h264! videoconvert! ximagesink

원하는 해상도에 따라 수정할 수 있습니다.

위와 관련하여 문제가 있음을 알려주십시오.

+0

h264 파서를 지적 해 주셔서 감사합니다. –