2013-07-22 4 views
0

2 개의 스크립트가 있습니다. h264 비디오 스트림을 보내는 서버와 스트림을 재생하는 클라이언트. 둘 다 gstreamer-1.0을 사용합니다. 다음은 클라이언트의 코드입니다.gstreamer 1.0을 사용하여 비디오에서 비디오 녹화

DEST=10.2.2.30 
LATENCY=0 

VIDEO_CAPS="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)H264" 


VIDEO_DEC="rtph264depay ! avdec_h264 max_threads=0" 

VIDEO_SINK="videoconvert ! videoscale ! autovideosink sync=false async=false" 


gst-launch-1.0 -v rtpbin name=rtpbin latency=$LATENCY         \ 
    udpsrc caps=$VIDEO_CAPS port=6000 ! rtpbin.recv_rtp_sink_0      \ 
     rtpbin. ! $VIDEO_DEC ! $VIDEO_SINK            \ 
    udpsrc port=6001 ! rtpbin.recv_rtcp_sink_0          \ 
     rtpbin.send_rtcp_src_0 ! udpsink port=6005 host=$DEST sync=false async=false 

스트림을 재생하는 대신 yuv 파일에 기록하고 싶습니다. 내가 어떻게 할 수 있니?

답변

2

autovideosink를 filesink로 바꾸고 잠재적으로 대용 필터를 사용하여 원하는 YUV 형식을 결정하십시오. 그래서 I420 당신은 같은 것을 할 수있는 :

VIDEO_SINK="videoconvert ! 'video/x-raw,format=(string)I420' ! filesink location=myfile.yuv sync=false async=false" 

을하거나 특정 해상도하려는 경우 :

VIDEO_SINK="videoconvert ! videoscale ! 'video/x-raw,format=(string)I420,width=1280,height=720' ! filesink location=myfile.yuv sync=false async=false" 

희망하는 데 도움이됩니다.