A12实现RTSP和RTMP的切换的方法

1.ambalink 端

将以下两个文件复制到target/usr/bin下面:

sendtortos   

youtube_live

2.将以下两个脚本文件复制到target/usr/local/share/script下面

rtsp.sh

#!/bin/sh

###main

str_tmp=""        
str_tmp=`ps |grep -r "youtube_live" |grep -v grep`
if [ "$str_tmp" != "" ]; then
    killall youtube_live
fi  

str_tmp=""
str_tmp=`ps |grep -r "AmbaRTSPServer" |grep -v grep`
if [ "$str_tmp" != "" ]; then
        echo "AmbaRTSPServer already running"        
        exit 0
fi

echo "SendToRTOS reset_vf"
/usr/bin/SendToRTOS reset_vf  
sleep 0.5

str_tmp=${1}
if [ "$str_tmp" != "" ]; then
        /usr/bin/AmbaRTSPServer --en_audio --en_rtcp
else
        /usr/bin/AmbaRTSPServer
fi

rtmp.sh

#!/bin/sh

###main

str_tmp=""        
str_tmp=`ps |grep -r "AmbaRTSPServer" |grep -v grep`
if [ "$str_tmp" != "" ]; then
    killall AmbaRTSPServer
fi  

str_tmp=""
str_tmp=`ps |grep -r "youtube_live" |grep -v grep`
if [ "$str_tmp" != "" ]; then
        echo "youtube_live already running"    
      exit 0
fi

echo "SendToRTOS reset_vf"
/usr/bin/SendToRTOS reset_vf   
sleep 0.5

/usr/bin/youtube_live ${1} &

3.视频推送(RTOS):

若要执行RTMP视频推送: 在合适的地方添加以下代码:

 AmpNetUtility_luExecNoResponse("/usr/local/share/script/rtmp.sh rtmp");

  切回RTSP:

AmpNetUtility_luExecNoResponse("/usr/local/share/script/rtsp.sh  --en_audio ");

4.修改文件

 applibNet_Base.c 文件 函数:static int AmbaLink_NetEventNotifierCallBack(void *hdlr, UINT32 event, void* info)

  更改为如下(RTSP或RTMP重启时RTOS端执行rest_vf)

  case EVENTNOTIFIER_LINUXEVENT_RESET_VF:      

       AppLibComSvcHcmgr_SendMsgNoWait(AMSG_NETCTRL_VF_RESET, 0, 0);

       break;

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值