2016-06-28 2 views
1

Gstreamer 소스 플러그인을 작성 했으므로 버퍼를 생성하고 다운 스트림 요소로 변환하고 미리 볼 수 있습니다. 최근에 멀티 스트림을 구현하라는 요청을 받았는데 그 하나의 스트림은 미리보기를하고 다른 스트림은 녹음을 수행합니다 (filesink 사용). 이전에 'tee'플러그인을 조사했지만 형식/해상도가 동일한 여러 스트림 만 지원합니다. 2 개의 스트림이 다른 포맷/해상도 인, 즉 하나의 파이프 라인에 두 개의 캡 필터가있는 경우 어떤 플러그인을 사용해야합니까? ? 플러그인이있는 경우 플러그인을 사용하는 방법에 대한 몇 가지 예를 제공 할 수 있습니까?Gstreamer에서 다중 스트림 구현

내가 기대하는 파이프 라인은 다음과 같이 진행됩니다

gst-launch-1.0 mysrc ! (some plugins) name=t ! video/x-raw,format=NV12,width=320,height=240 ! xvimagesink t. ! video/x-raw,format=YUY2,width=640,height=480 ! filesink location=img_file 

답변

0

가 나도 두 SRC 패드를 생산하고 그냥 filesink 제대로 videosink 연결됩니다 플러그인이 구현 생각 ..

또는 tee와 videoscale videoconvert 비디오 요소를 사용하여 다양한 해상도를 얻을 수 있습니다. 이 방법은 물론 더 많은 자원을 필요로하며 첫 번째 접근 방식은 더 나은 최적화가 될 수 있습니다 (추측하면, 플러그인에 대해서는 아무 것도 모릅니다).

이것은 두 개의 서로 다른 크기의 비디오 링크가있는 예입니다. 당신은 당신이 mysrc로부터 하나의 입력을 가지고 있다는 것을 깨달아야합니다. 복제해야하고 그 중 하나의 크기를 조정해야합니다 (또는 두 개 필요한 경우) .. 다른 방법은 없습니다. 당신이 원하는 것은 티와 비디오 세트/비디오/비디오 컨버터의 조합의 요소입니다. 그런 요소가 있는지 확실하지 않고, 매우 유용 할 것이라고 확신하지 못합니다. (하지만 아마 감각이 있습니다. 단지 그것을 보지 못합니다.) ..

gst-launch-1.0 videotestsrc ! video/x-raw,width=640,height=480 ! tee name=t t. ! queue ! videoscale ! video/x-raw,width=320,height=240 ! videoconvert ! autovideosink t. ! queue ! videoscale ! video/x-raw,width=200,height=200 ! videoconvert ! autovideosink 

아마도 나는 당신의 질문을 이해하지 못했습니다.

+0

고마워요! 파이프 라인이 잘 작동 할 수 있습니다. – caolaoban1234