THREE STEPS TO CREATE A CAMERAL NETWORK.
当前只初步完成了摄像头以30fps捕获图像,输出yuyv格式。然后进行格式转换,yuyv转成264.最后用rtp传输到目标主机。
- ubuntu带的有,不用装。
git clone http://git.videolan.org/git/x264.git
./configure --enable-shared
make
如果出错的话,先安装一些需要的库。运行下面的命令即可。
sudo apt-get install build-essential git-core checkinstall texi2html libfaac-dev \
libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev \
libvorbis-dev libx11-dev libxfixes-dev zlib1g-dev
make install
git clone https://github.com/j0r1/JRTPLIB.git
cmake ./
make
make install
-
include:头文件目录
- config.h 配置文件
- debug.h debug打印输出
-
res: 包含一些资源
-
test:测试目录,包含整个流程的测试。通过test_min_level和test_max_level来配置测试的流程。具体可以看./test/test_main.cpp代码。
- 摄像头捕获测试
- yuyv转成yuv420p测试
- yuv420p转成264测试
- 264传输测试
-
*.cpp文件:源码
- 如果想要分段测试的话,将main.cpp中main函数的run()注释掉。反之,运行的话,则取消注释。
- make
- 运行(下面三个步骤不分先后)
- 连上本地的摄像头
- ./main
- 打开用户终端的接收264流的软件,比如vlc。
- 注释掉main.cpp里面的run()函数
make
./main x,y
x是测试的开始项,y是测试的结束项- 之后会在res目录下面生成相应的视频文件(100帧),下面是播放命令
ffplay -f rawvideo -pixel_format yuyv422 -video_size 640x480 ./res/image.yuyv
ffplay -f rawvideo -pixel_format yuv420p -video_size 640x480 ./res/image.yuv
ffplay -stats -f h264 ./res/image.264
-
函数名:camera_struct camera(camera_struct *cam);
-
设置参数,比如频率、捕获的图片格式等等。
-
函数名:format_struct convert_format(format_struct *for);
-
设置转换目标格式,比如264、jpeg、m3u8等等。
-
函数名:tran_struct transmit(tran_strcut *tran);
-
选择传输协议,比如rtp、rtmp、flv等等。