TK1搭建live555

wget  http://www.live555.com/liveMedia/public/live555-latest.tar.gz
tar xzf live555-latest.tar.gz
cd live

打开live/testProgs/testOnDemandRTSPServer.cpp,找到“ // A H.264 video elementary stream:”

    char const* streamName = "liv0";
    char const* inputFileName = "~/test.264";

修改reuseFirstSource的值为True

./genMakefiles linux #注意后面这个参数是根据当前文件夹下config.<后缀>获取得到的make

.安装Yasm:x264需要使用yasm来针对CPU架构进行优化,提高性能。

code:

cd
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
tar xzvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure
make

(aptitude checkinstall第一次选n第二次选y)
sudo checkinstall --pkgname=yasm --pkgversion="1.2.0" --backup=no --deldoc=yes --default

3.安装x264:下载源代码、编译、安装

code:

cd
git clone git://git.videolan.org/x264
cd x264

sudo ./configure --enable-shared
make
make install
 
编译zlib
$wget http://www.zlib.net/zlib-1.2.8.tar.gz
$tar -xvzf zlib-1.2.8.tar.gz
$cd zlib-1.2.3.tar.gz
$./configure
$make
$sudo make install
编译ffmpeg

sudo wget http://ffmpeg.org/releases/ffmpeg-2.8.1.tar.bz2

sudo tar xvjf ffmpeg-2.8.1.tar.bz2

./configure --enable-gpl --enable-libx264 --enable-shared --prefix=/usr/local

make

make install

ffmpeg正常安装后执行ffmpeg时出现如下错误:

ffmpeg: error while loading shared libraries: libavdevice.so.53: cannot open shared object file: No such file or directory

解决办法:

vi /etc/ld.so.conf

加入:/usr/local/lib

执行ldconfig

v4l2-ctl

这是一个纯命令行的工具,因此适用性很强,可以被脚本甚至程序调用对摄像头进行参数的配置。  使用apt-get安装此命令: 

sudo apt-get install v4l-utils 

该命令的完整使用大家可以自行查阅文档。这里例举常用的命令  查看目前所有v4l设备: 

v4l2-ctl --list-devices

将得到类似如下的输出: 

linaro@linaro-alip:~$  v4l2-ctl --list-devices  Altair USB2.0 Camera (usb-sw-ehci-1.1):          /dev/video0

列出摄像头的属性: 

v4l2-ctl –a –d /dev/video0

(如果摄像头不是/dev/video0这个设备,请更改上述命令)  将得到指定摄像头的各类信息,如下列输出: 

linaro@linaro-alip:/usr/lib/vino$  v4l2-ctl --all -d /dev/video0 Driver Info (not using libv4l2):          Driver name   : uvcvideo          Card type     : Altair USB2.0 Camera          Bus info      : usb-sw-ehci-1.1          Driver version: 1.1.0          Capabilities  : 0x04000001                  Video Capture                  Streaming  Format Video Capture:          Width/Height  : 640/480          Pixel Format  : 'YUYV'          Field         : None          Bytes per Line: 1280          Size Image    : 614400          Colorspace    : SRGB  Crop Capability Video Capture:          Bounds      : Left 0, Top 0, Width 640, Height 480          Default     : Left 0, Top 0, Width 640, Height 480          Pixel Aspect: 1/1  Video input : 0 (Camera 1: ok)  Streaming Parameters Video Capture:          Capabilities     : timeperframe          Frames per second: 30.000 (30/1)          Read buffers     : 0

可以看到目前我使用的摄像头支持30fps,640x480 YUV2的输出格式。

列出对当前摄像头有效的配置选项: 

v4l2-ctl –l -d /dev/video0

(如果摄像头不是/dev/video0这个设备,请更改上述命令)  将得到类似如下的输出: 

 

图:所有被当前摄像头所支持的配置选项

这个列表中的出现的项目都是可以设置的,比如上图所示,我目前的摄像头可以进行曝光率(exposure_absolute项目)的调节,在视觉处理里面,曝光率调节会比较多用。因为摄像头默认的自动曝光很多时候会干扰算法运行。

设置某一项摄像头参数  可以对上面提到的配置选项进行设置,这里以设置固定曝光值为-10为例: 

v4l2-ctl -c exposure_auto=1 #关闭自动曝光  v4l2-ctl -c exposure_absolute=-10 #设置固定曝光为-10

对于其他方面的设置,大家可以按照自身摄像头的情况进行尝试。

### 如何在Linux上设置RTMP流媒体服务器 #### 安装必要的依赖项 为了建立一个功能齐全的RTMP流媒体服务器,在Linux环境中安装一些基础软件包是必需的操作。这通常涉及到更新现有的包列表并安装编译工具链以及Nginx HTTP服务器及其模块支持。 ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install build-essential checkinstall libncursesw5-dev \ libssl-dev libsqlite3-dev tk-dev libreadline6-rtmp ffmpeg -y ``` 上述命令适用于基于Debian系统的发行版,如Ubuntu;对于其他类型的Linux分发版本,则需调整相应的包管理器指令[^1]。 #### 编译和配置FFmpeg 由于RTMP协议处理视频编码解码的需求,确保拥有最新稳定版本的多媒体框架至关重要。可以从源代码构建FFmpeg来获得最佳性能,并启用特定选项以优化直播服务特性。 ```bash cd /usr/src/ git clone https://github.com/FFmpeg/FFmpeg.git cd FFmpeg ./configure --enable-libfdk-aac --enable-gpl --enable-nonfree --enable-version3 --enable-small --enable-static --disable-debug --disable-doc --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib make -j$(nproc) sudo make install ``` 此过程会下载官方仓库中的FFmpeg项目文件夹,按照给定参数完成自定义化配置之后执行多线程编译与全局范围内的部署操作[^2]。 #### 配置Nginx RTMP模块 通过编辑`/etc/nginx/nginx.conf`文件添加针对实时传输控制协议的支持部分: ```nginx rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; } } } ``` 这段配置使得Nginx能够监听指定端口上的RTMP连接请求,并创建名为`live`的应用程序实例用于承载实际的数据流传送活动。保存更改后重启Web服务器使新设定生效[^3]。 #### 测试推送及播放流 利用OBS Studio或其他第三方应用程序作为客户端向刚设立好的RTMP地址发起推流动作,同时借助VLC Media Player验证接收效果是否正常无误。假设本地IP为`192.168.x.y`,那么完整的URL格式应如下所示: - 推流路径:`rtmp://192.168.x.y/live/stream_key` - 拉取链接:`http://192.168.x.y:8080/hls/stream.m3u8` 以上步骤提供了一个基本框架指导用户快速建立起属于自己的私有云直播平台解决方案[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值