2017-10-24 6 views
0

카메라 비디오를 수신하고 비디오를 성공적으로 처리했습니다 (tensorflow를 사용하여 오브젝트에 윤곽선이 그려 짐). 클라이언트 컴퓨터에 처리 된 비디오를 다시 전송하여 실시간으로 클라이언트에서 처리 된 비디오를 보여줄 수 있습니다.비디오 스트림을 다른 시스템으로 푸시

나는 많이 봤지만 해결책을 찾지 못했습니다. 나는 파이썬에서 프로그래밍을하고 있는데, 파이썬에서 가져올 수있는 리눅스의 RTSP를위한 라이브러리가있다. 또는 비디오를 다른 컴퓨터로 스트리밍 할 수있는 다른 프로토콜.

+1

보이는 ffserver 실행합니다. – Anthony

답변

0

감사합니다. Anthony 나는 설치된 py3에서 Python3 종속성을위한 python-ffmpeg를 설치하기 위해 Ffmpeg를 시도했습니다.

command = [FFMPEG_BIN, 
       '-y', 
       '-f', 'rawvideo', 
       '-vcodec', 'rawvideo', 
       '-s', dimension, 
       '-pix_fmt', 'bgr24', 
       '-r', '24', 
       '-i', '-', 
       '-an', 
       '-tune', 'zerolatency', 
       '-preset', 'ultrafast', 
       '-crf', '0', 
       '-b:v', '2000k', 
       '-qmin', '1', 
       '-qmax', '4', 
       '-qscale', '4', 
       '-vcodec', 'rawvideo', 
       feed] 

self.proc = sp.Popen(command, stdout=sp.PIPE, stderr=None, stdin=sp.PIPE) 

while True: 

    ret, frame = self.cap.read() 
    #some analysis done here 
    if ret: 
    self.proc.stdin.write(frame.tostring()) 

출력 vcodec은 anytype 일 수 있습니다. 이를 위해

는 this-

HTTPPort 1234 
RTSPPort 1235 

MaxClients 1000 
MaxBandwidth 10000 


<Feed feed1.ffm> 
     File /tmp/feed1.ffm 
     ACL allow 127.0.0.1 
</Feed> 
<Stream test1.sdp> 
    NoDefaults 
    Feed feed1.ffm 
    Format rtp 
    Noaudio 
    VideoCodec libx264 
    VideoSize 1920x1080 
    #VideoHighQuality 
    VideoBitRate 64 
    VideoFrameRate 17 
    VideoGopSize 25 
    VideoBufferSize 50000 
    AVOptionVideo flags +global_header 
    AVOptionVideo me_range 16 
    AVOptionVideo qdiff 4 
    AVOptionVideo qmin 30 
    AVOptionVideo qmax 34 
    ACL allow 192.168.0.0 192.168.255.255 
    PreRoll 0 
</Stream> 

처럼 /etc/ffserver.conf에 ffserver.conf 파일을 만드는 작업과이는 FFmpeg과 스위트를위한 작업처럼