반응형
- ffserver에 대하여
- ffserver는 ffmpeg를 통해 다수의 Client들에게 영상을 전송할 수 있도록 해 주는 영상서버 프로그램이다.
- ffserver for windows
- 기본적으로 ffserver는 linux용이지만, Windows에서도 Cygwin을 통해 빌드하여 사용할 수 있다.
- Cygwin 다운로드 : https://cygwin.com/install.html
- ffserver 다운로드 : http://ffmpeg.org/download.html#release_3.1
- ffserver가 ffmpeg3.2 버전부터는 중단되므로, 3.1.x버전을 다운로드 받아야 한다.
- 빌드 방법 : http://rette.iruis.net/2016/08/ffserver-for-windows-64bit-%EB%B9%8C%EB%93%9C/
- 추가적으로, ffserver에서 libx264코덱을 사용하려면, 다음 사이트를 참고해서 설정을 해 주어야 한다.
- http://codens.info/245
- 그런데, x264를 빌드하려면, nasm 최근버전이 필요하다. 이 버전은, 다음 사이트에서 받을 수 있다.
- 또한, cygwin상에서 NASM 실행파일에 대한 경로 설정을 해야만 하는데, 다음과 같은 명령을 사용한다.
- PATH=[NASM경로]:$PATH
- 또한, AVS관련 파일에서 컴파일 에러가 나기 때문에, 다음 설정 명령을 통해 AVS를 컴파일에서 제외하여야 한다.
- ./configure --enable-shared --disable-avs
- 최종적으로, ffserver의 설정 구문은 다음과 같이 된다.
- ./configure --prefix=../ffmpeg-3.1.11 --enable-gpl --enable-libx264 --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib
- 참고로, 다음 사이트에서 이미 빌드된 실행파일들을 다운로드 받을 수 있지만, ffserver는 없다.
- 스트리밍
- 처음에는, NamedPipe를 이용하는 방법을 생각하였다.
- http://zoolu.co.kr/blogs/2015/11/04/opencv%EC%9D%98-mat%EC%9D%84-ffserver%EC%97%90%EC%84%9C-%EC%8A%A4%ED%8A%B8%EB%A6%AC%EB%B0%8D-%ED%95%98%EA%B8%B0
- http://zoolu.co.kr/blogs/2015/02/06/ffserver%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%EC%8A%A4%ED%8A%B8%EB%A6%AC%EB%B0%8D
- 그러다 잘 안되서, tcp socket을 이용하는 방법으로 구현하였다.
- ffmpeg -f rawvideo -pixel_format bgr24 -video_size 320x180 -i "tcp://127.0.0.1:27015" -vcodec copy -acodec copy http://localhost:7000/test.ffm
- ffmpeg -f rawvideo -pixel_format rgb24 -video_size 320x180 -i "tcp://127.0.0.1:27015" -codec:v libx264 -pix_fmt yuv420p http://localhost:7000/test.ffm
- HTTP서버(영상처리On/Off등의 제어)
- 윈도우에서 ffmpeg에 Named pipe 사용하기
테스트1 : rtsp 스트리밍
- config file : testsample.conf
HTTPPort 7000
RTSPPort 7001
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000
<Feed test.ffm>
File /test.ffm
FileMaxSize 1M
ACL allow 127.0.0.1
</Feed>
<Stream test.rtsp>
Feed test.ffm
Format rtp
VideoSize 640x480
NoAudio
Metadata title "test"
</Stream>
<Stream stat.html>
Format status
ACL allow localhost
</Stream>
- 명령
ffserver -f testsample.conf
ffmpeg -re -i result.avi -vcodec copy -acodec copy http://localhost:7000/test.ffm
반응형
'영상처리 프로젝트' 카테고리의 다른 글
Windows에서 ffserver를 이용한 영상서버구축(H264코덱 사용) 1 (0) | 2017.11.15 |
---|---|
ffserver와 OpenCV를 통한 영상서버 구축 2 (0) | 2017.11.08 |
신규 떨림보정(자유도 4, 자유도 2) 테스트 (0) | 2016.12.22 |
OpenCV 2.x와 3.x의 차이 (0) | 2016.10.20 |
KCF(Kernelized Correlation Filters) (0) | 2016.05.23 |