window 与 Linux 实现 rtsp 转 rtmp

本文介绍 window 与 Linux 两种不同操作系统下 实现 rtsp 转 rtmp , 文末直接提供代码,简单粗暴 。

一 : window 实现 rtsp 转 rtmp

1、将提供的windows下的ffmpeg包解压

配置环境变量 Path

image

测试ffmpeg -version

image

配置成功
若不配置环境变量,则将直播系统中配置文件中

image

ffmpeg地址,改为绝对路径..\ffmpeg\bin\ffmpeg.exe

2、安装red5

下载地址:https://github.com/Red5/red5-server/releases
下载后进行安装,安装后修改配置文件中的IP地址

image

点击安装目录先的red5.bat启动red5

3、安装tomcat并部署直播系统

安装tomcat。

通过提供的直播系统源码,导出war包放入或者直接用提供的war包放在tomcat下的webapps下 ,启动tomcat。修改如下配置文件

    注意:修改直播系统的配置文件red5.properties
image

二 : Linux 实现 rtsp 转 rtmp

1.下载ffmpeg-4.1.tar.bz2 ##

执行tar -jxvf ffmpeg-4.1.tar.bz2-C /opt/moudle/ 解压安装包修改其源码,解决花屏问题,参照下方文档:花屏问题解决

进入解压路径,执行第三步,3.开始安装ffmpeg

遇到问题,参考第二步解决安装中的问题。

2.解决gcc is unable to create an executable file C compiler test failed.问题 安装gcc ##

1)在线安装 yum install gcc 报错

This system is not registered with an entitlement server. You can use subscription-manager to register. 解决方 式 https://www.cnblogs.com/yanduanduan/p/9083887.html

wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-kitchen-1.1.1-5.el7.noarch.rpmwget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-chardet-2.2.1-1.el7_1.noarch.rpm执行rpm -ivh python-*新建repo配置文件(如 果是其他版本,则将下面的7改为你当前的版本数字) vim /etc/yum.repos.d/CentOS-Base.repo


#CentOS-Base.repo

    #  

    # The mirror system uses the connecting IP address of the client and the

    # update status of each mirror to pick mirrors that are updated to and

    # geographically close to the client.  You should use this for CentOS updates

    # unless you are manually picking other mirrors.

    #

    # If the mirrorlist= does not work for you, as a fall back you can try the  

    # remarked out baseurl= line instead.

    #

    #

    [base]

    name=CentOS-$7 - Base - 163.com

    #mirrorlist=http://mirrorlist.centos.org/?release=$7&arch=$basearch&repo=os

    baseurl=http://mirrors.163.com/centos/7/os/$basearch/

    gpgcheck=1

    gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

    #released updates

    [updates]

    name=CentOS-$7 - Updates - 163.com

    #mirrorlist=http://mirrorlist.centos.org/?release=$7&arch=$basearch&repo=updates

    baseurl=http://mirrors.163.com/centos/7/updates/$basearch/

    gpgcheck=1

    gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

    #additional packages that may be useful

    [extras]

    name=CentOS-$7 - Extras - 163.com

    #mirrorlist=http://mirrorlist.centos.org/?release=$7&arch=$basearch&repo=extras

    baseurl=http://mirrors.163.com/centos/7/extras/$basearch/

    gpgcheck=1

    gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

    #additional packages that extend functionality of existing packages

    [centosplus]

    name=CentOS-$7 - Plus - 163.com

    baseurl=http://mirrors.163.com/centos/7/centosplus/$basearch/

    gpgcheck=1

    enabled=0

    gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

清除缓存yum clean all

yum -y install gcc

2)离线安装****gcc**

下载相应的rpm包链接地址如下 http://mirrors.163.com/centos/6/os/x86_64/Packages/http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/需要以下包mpfr-3.1.1-4.el7.x86_64.rpmlibmpc-1.0.1-3.el7.x86_64.rpmlibmpc-devel-1.0.1-3.el7.x86_64.rpmkernel-headers-3.10.0-957.el7.x86_64.rpmglibc-headers-2.17-260.el7.x86_64.rpmglibc-devel-2.17-260.el7.x86_64.rpmcpp-4.8.5-36.el7.x86_64.rpmgcc-4.8.5-36.el7.x86_64.rpmlibgomp-4.8.5-36.el7.x86_64.rpm执行以下命令rpm -Uvh *.rpm --nodeps --force或者挨个按顺序执行glibc两个包和gcc安装时会报错,建议执行上一个命令rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpmrpm -ivh libmpc-1.0.1-3.el7.x86_64.rpmrpm -ivh kernel-headers-3.10.0-957.el7.x86_64.rpmrpm -ivh glibc-headers-2.17-260.el7.x86_64.rpmrpm -ivh glibc-devel-2.17-260.el7.x86_64.rpmrpm -ivh cpp-4.8.5-36.el7.x86_64.rpmrpm -ivh libgomp-4.8.5-36.el7.x86_64.rpmrpm -ivh gcc-4.8.5-36.el7.x86_64.rpm

[if !supportLists]1. [endif]解决nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.下载yasm-1.3.0.tar.gz执行如下命令tar -xvzf yasm-1.3.0.tar.gzcd yasm-1.3.0/./configuremakemake install

3****.开始安装 ffmpeg

./configure --enable-shared --prefix=/opt/moudle/ffmpeg-4.1makemake install输入./ffmpeg -verson报错 libavdevice.so.58: cannot open shared object file: No such file or directoryvi /etc/ld.so.conf.d/ffmpeg.conf然后添加一行内容: /opt/moudle/ffmpeg-4.1/lib 之后保存并退出,然后执行 ldconfig 使配置生效,现在再次执行 ./ffmpeg -version

为了方便在任何时候都能使用直播系统将ffmpeg加入到环境变量vi ~/.bash_profile加入FFMPEG_HOME=/opt/moudle/ffmpeg-4.1 export FFMPEG_HOMEPATH=FFMPEG_HOME/bin:PATHexport PATHsource ~/.bash_profile ffmpeg -version

4****.安装red5 ##

red5-server-1.0.10-M10.tar.gz下载路径:https://github.com/Red5/red5-server/releases执行tar -zxvf red5-server-1.0.10-M10.tar.gz -C /opt/module

解压完后,修改red5配置文件,

/red5-server/conf 下red5.properties配置文件

image

启动red5cd解压路径中 运行 red5-server.sh

修改配置文件测试是否成功浏览器中输入http://IP:port进入red5主页 (默认端口5080) 指定red5启动时jdk路径修改red5.sh添加export JAVA_HOME=/home/cci/ehv/videoServer/moudle/jdk1.8.0_144

5****.安装tomcat ##

apache-tomcat-8.5.37.tar.gz下载路径: https://tomcat.apache.org/download-80.cgi执行tar -zxvf apache-tomcat-8.5.37.tar.gz -C /opt/moudle启动tomcatcd解压目录中\bin执行./startup.sh将直播系统的War包放入到webapps中修改直播系统配置文件,red5.properties注意:指定启动时jdk路径修改catalina.sh开头位置添加export JAVA_HOME=/home/cci/ehv/videoServer/moudle/jdk1.8.0_144export JRE_HOME=/home/cci/ehv/videoServer/moudle/jdk1.8.0_144/jre修改setclasspath.sh开始位置空白处添加export JAVA_HOME=/home/cci/ehv/videoServer/moudle/jdk1.8.0_144export JRE_HOME=/home/cci/ehv/videoServer/moudle/jdk1.8.0_144/jre

三 : 问题解决

1、花屏问题解决

下载ffmpeg源码,修改ffmpeg\libavformat

下册udp.c 中

UDP_MAX_PKT_SIZE 由65536改为(65536*10)如下图

image.png

安装MinGW

下载地址 <u>http://www.mingw.org/</u>

下载yasm

下载地 <u>http://yasm.tortall.net/Download.html</u>

更改yasm*.exe为yasm.exe后复制到MinGW的bin目录下(也有文章让放在c:\windows\system32下我这边尝试无效) 建议两个路径都放入

开始编译

运行MinGW\msys\1.0\msys.bat

进入FFmpeg的解压路径

编译命令

./configure --enable-shared --disable-static

make

make install

编译ffmpeg 时配置完执行make 遇到common.mak:159: *** missing separator. Stop. (159值不固定可能为其他数字)

解决方案:

运行

Git** config --global core.autocrlf false** #然后运行下面的命令删除ffmpeg代码,并重新获取一下即可 git rm --cached -r . git reset --hard

2、 org.red5.server.net.rtmp.RTMPHandler - Scope oflaDemo not found on 192.168.0.103

最近window使用ffmpeg 与 red5 实现rtsp 转换成 rtmp 遇见的坑 (window 环境)

安装 ffmpeg , 配置环境变量

安装red5 (window 10) 默认可以不配置java_home 导致一直失败,注意了

别人发给我的exe ,安装之后少了oflaDemo ,导致报错,需要在webapps 下面添加,我这里是从linux 上拉下来就可以用了


image.png

这个看播放流,如果9个,你可以播放子码流

摄像头一半都有两个流,一个子码流,一个主码流,类似一个高清,一个流畅。多窗口同时播放,建议使用子码流。单个窗口播放使用主码流

3、码流常识

海康

主码流地址格式:

rtsp://[user]:[password]@[ip]:[port]/[codec]/ch[channel]/main/av_stream

子码流地址格式:

rtsp://[user]:[password]@[ip]:[port]/[codec]/ch[channel]/sub/av_stream

大华

主码流地址格式:

rtsp://[user]:[password]@[ip]:[port]/cam/realmonitor?channel=[channel]&subtype=0

子码流地址格式:

rtsp://[user]:[password]@[ip]:[port]/cam/realmonitor?channel=[channel]&subtype=1

四 : 资源

linux :

链接:https://pan.baidu.com/s/1uIjoiQMHb7suGG9Ht-ofOg
提取码:zr1g

window :

链接:https://pan.baidu.com/s/1Pw8sLIYyWSst0tmusxykxw
提取码:jxlr

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容