Open viclee888 opened 8 years ago
这个库目前只是一个很初级的demo,有问题可以直接在这里讨论,大家一起改进
我的推流地址为 rtmp://push.evideocloud.net/live/upload4gaE1XD6Odrr 我设置了 .setHost("push.evideocloud.net") .setAppName("live/upload4gaE1XD6Odrr") 从打印的日志看出来 tcurl为 rtmp://push.evideocloud.net:1935/live/upload4gaE1XD6Odrr 但是没有成功推流服务器流播放地址 rtmp://live1.evideocloud.net/live/upload4gaE1XD6Odrr 没流
报错这个 12-29 10:10:39.394: E/H264Packetizer(23504): A NAL unit may have been found in the bit stream ! 12-29 10:10:39.394: E/H264Packetizer(23504): Packetizer out of sync ! Let's try to fix that...
Q1: 参数的用法应该是这样: .setHost("push.evideocloud.net") .setAppName("live") session.startPublisher("upload__4gaE1XD6Odrr");
Q2: H264Packetizer在不同机型上的兼容性还有待测试。“Packetizer out of sync”的意思就是MediaRecorder得到的媒体流格式跟我预期的不一样,需要调试一下才能确定具体的格式。 可以尝试先把视频录制到文件,然后用MP4格式工具打开来看看它的容器格式。
Q1补充: setAppName对应到RTMP的接入点参数,startPublisher的参数对应到的是RTMP的流名
试了这种设置 tclurl打印 rtmp://push.evideocloud.net/live。还是报错 Q2。其实我手上有个JNI版本的这个推流的。视频流是Camera的预录制里面获取到的二进制 onPreviewFrame(byte[] data, Camera camera)获取数据编码H264
JNI的一般都是闭源的SO,木有办法安心使用……
我的有C代码。编译 64位时有点问题。正在扣代码
有C代码就好办,编译64位不会太困难。
我的推流地址:rtmp://211.15.150.95/live?vhost=push.local.com/dev 参数的用法应该是这样: .setHost("211.15.150.95") .setAppName("live?vhost=push.local.com") session.startPublisher("dev"); 可以正常编译运行。点击“start”,可以在手机上看到预览的视频图像。并未显示任何异常。 但是用vlc去播放这个推流地址时,看不到任何直播的视频图像。
是看不到。我也没有看到过。后来我用其他方法
谢谢各位的关注, 由于之前项目的原因, Android的直播搁置了一段时间, 所以也就没有再跟进这个开源项目了. 后面会继续做这块的开发 @viclee888 能否分享一下您的"其他方法"?
我因为要做这种功能,在github上找了N久。 发现编码方法有: 一、MediaCodec编码。 二、编译x264+faac编码。 三、MediaRecorder 第三种获取数据方式感觉很笨。一般都是1、2,推流用rtmpdump 找到的可免费使用库有: https://bce.baidu.com/doc/LSS/PushSDK.html#PushSDK (百度出品,但是说实话兼容还真不行,容易崩溃) https://github.com/EarthXiang (java开源,可以看一下音视频数据获取与横竖屏处理。不过我看更新挺频繁的) https://github.com/pili-engineering/PLDroidCameraStreaming (内容比较丰富,但是有时候接口没有回调。总体还是不错的)
SDK类型的开源还不少,金山云, 七牛(PLDroidCameraStreaming)的都有, 只是这些SDK, 都把一些核心的东西编译成库了, 用起来总是不太放心, 担心哪天有个什么限制, 只能连接他们的服务器就蛋疼了.EarthXiang的连接是不是写错了, 打不开?
@viclee888,能说一下您是怎么解决接收不到rtmp流的问题的吗?代码里地址总有port,而我们的地址没有port,最终也没接收到rtmp流,所以想请教一下,多谢!
我用这套代码没有跑通过。我是用的其他代码C++ 版本的 x264 +acc 编码 然后加的RTMP协议。最后JNI调用的
@viclee888 ,能分享一下demo吗?我现在用的推流都丢帧严重,所以有demo给我一个万分感谢~我的邮箱1329482734@qq.com
能告诉我你的联系方式么?用你的这个推流库程序遇到些问题 。