microshow / RxFFmpeg

🔥💥RxFFmpeg 是基于 ( FFmpeg 4.0 + X264 + mp3lame + fdk-aac + opencore-amr + openssl ) 编译的适用于 Android 平台的音视频编辑、视频剪辑的快速处理框架,包含以下功能:视频拼接,转码,压缩,裁剪,片头片尾,分离音视频,变速,添加静态贴纸和gif动态贴纸,添加字幕,添加滤镜,添加背景音乐,加速减速视频,倒放音视频,音频裁剪,变声,混音,图片合成视频,视频解码图片,抖音首页,视频播放器及支持 OpenSSL https 等主流特色功能
4.47k stars 748 forks source link

转推流时总是走onError #198

Open feng99721480 opened 3 years ago

feng99721480 commented 3 years ago

private String[] getPushRTMPAliCommand(String rtspAddress) { //RTSP转RTMP,推流到云端 RxFFmpegCommandList cmdlist = new RxFFmpegCommandList();

    cmdlist.append("-i");//输入
    cmdlist.append(rtspAddress);                                    //获取视频流的地址:网络摄像头的RTSP地址
    cmdlist.append("-vcodec");                                      //视频编解码器
    cmdlist.append("copy");                                         //流复制
    cmdlist.append("-acodec");                                      //音频编解码器
    cmdlist.append("copy");                                         //流复制
    cmdlist.append("-f");                                           //输出
    cmdlist.append("flv");                                          //格式
    cmdlist.append("rtmp://source.unifun.store/insbot/" + robotId);  //推送到云服务端,播放地址:rtmp://play.unifun.store/insbot/mssm_live

    return cmdlist.build();
}

public void startPush() { ULog.d(TAG, "startPush == 网络摄像头开始转推流"); if (onWebCameraPushListener != null) { myRxFFmpegSubscriber = new MyRxFFmpegSubscriber(onWebCameraPushListener); } //开始推流 new Thread(new Runnable() { @Override public void run() { try { RxFFmpegInvoke.getInstance() .runCommandRxJava(getPushRTMPAliCommand(ADDRESS_RTSP_ZSHT))//运行指令 .subscribe(myRxFFmpegSubscriber);//设置观察者 } catch (Throwable e) { ULog.e(TAG, "startPush == 转推流发生错误!!! === " + e.getMessage()); } } }).start(); } 我这里是把一个网络摄像头rtsp流转推到阿里云,转推流时能推一会,几分钟后就走onError回调了,网络摄像头那边没问题,一直是可以ping通的,请问下为什么转推失败?

microshow commented 3 years ago

可能连接断了吧,可以重连接~