JavaCV异常:avio_open2 error() error -138: Could not open ‘null‘的解决方法

JavaCV异常:avio_open2 error() error -138: Could not open 'null'的解决方法

项目码云(Gitee)地址:https://gitee.com/banmajio/RTSPtoRTMP
项目github地址:https://github.com/banmajio/RTSPtoRTMP
个人博客:banmajio’s blog

javacv使用ffmpeg将rtsp转rtmp直播流播放的问题解决与优化系列文章:
FFmpeg转封装rtsp到rtmp(无需转码,低资源消耗)
JavaCV中FFmpegFrameGrabber调用start()方法时出现阻塞的解决办法
JavaCV使用FFmpeg进行rtsp转rtmp直播流画面延时的优化方法
JavaCV1.5.3版本FFmpegFrameGrabber初始化的时候加载时间长的解决方法
av_write_frame() error -22 while writing video packet解决方法
JvaCV开启日志设置日志级别的方法
JvaCV推流过程中遇到内存溢出,JVM异常OOM问题的解决方法

问题分析

org.bytedeco.javacv.FrameRecorder$Exception: avio_open2 error() error -138: Could not open 'null'
[2020-04-29 16:51:14.252] [pool-1-thread-1] [ERROR] [com.junction.play.RtmpPush] : avio_open2 error() error -138: Could not open 'null'
	at org.bytedeco.javacv.FFmpegFrameRecorder.startUnsafe(FFmpegFrameRecorder.java:876)
	at org.bytedeco.javacv.FFmpegFrameRecorder.start(FFmpegFrameRecorder.java:401)
	at org.bytedeco.javacv.FFmpegFrameRecorder.start(FFmpegFrameRecorder.java:396)
	at com.junction.play.RtmpPush.push(RtmpPush.java:141)
	at com.junction.play.RealPlay.play(RealPlay.java:74)
	at com.junction.thread.CameraThread$MyRunnable.run(CameraThread.java:59)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

该错误时在使用JavaCV过程中很常见的一种错误。从报错信息可以看出两个关键的信息:

  1. 错误发生在FFmpegFrameRecorder的avio_open2()方法,该方法是用于打开FFmpeg的输入输出文件,与推流地址建立连接。而FFmpegFrameRecorder是推流的部分,可以说明拉流端没有问题,问题出现在了推流端。
  2. Could not open ‘null’ 可以得知要打开的推流地址为null

综上所述一般发生这种错误的原因是因为与推流端建立连接失败。可以通过以下方式排查错误发生的原因:

  1. 检查windows里的nginx进程有没有开。
    在这里插入图片描述
  2. telnet一下rtmp地址的ip端口:
    在这里插入图片描述
    telnet的使用方法自行百度。

解决方法

检查推流端ip端口是否有问题,检查nginx服务是否启动。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

banmajio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值