这可能是谁在即时串流intrested人一个相当intresting主题 从 您的 设备 到 一个 网络服务器
。(主要的Android / Java版)我终于找到了一种方法,该方法可以将设备的摄像头实时传输到Web服务器(网站)。在wifi网络上大约需要
1帧/秒以在wifi网络上显示,它也可以在EDGE /
3G网络上使用。在本主题/问题中,我想讨论新技术,改进和有关实时流媒体的想法,因为我将与您分享我的代码(也感谢代码。)
我的代码使用setOneShotPreviewCallback()调用onPreviewFrame()从相机预览中反复拍摄快照。该帧以YUV格式交付,因此raw2jpg()将其转换为jpeg编码器的32位ARGB。NV21是YUV平面格式。
应用程序将调用getPicture(),并在私有字节数组mCurrentFrame中为图像生成jpeg数据,然后返回该数组。
此后,byteArray mCurrentFrame会被Base64Encoded并以HTTP
POST方法与Base64的字符串值和自己的ID代码一起发送到我的网络服务器,因此人们将无法再向其发送其他图像。在Web服务器上,它再次被解码并放入文件test.jpg中。PHP和Javascript在Web服务器上运行。PHP获取POST方法,JavaScript每750秒重新加载一次图像。基本上就是这样。
现在,我对您的想法,改进和您想添加/询问的其他内容非常感兴趣。 这是我的一些问题:
1)用音频实时流传输的最佳方法是什么?录像还是我的方法+录音?
2)您将如何处理视频记录流?
3)您如何将音频流传输到Web服务器?( 主要目标 )(使用Java,PHP和JavaScript)
4)我还计划向我添加典型的实时流媒体功能,例如,当一个名人出现时,您可以在实时流媒体时显示他的名字,或者仅将sd目录中的图像添加到实时流中。您还会解码它并覆盖图像,还是以某种方式将其放入直播中?
本主题主要是提出问题,因此请为此处的某些人提供很大帮助。因此,我为其添加了50赏金。
此致XverhelstX
令我惊讶的是,http发布可能不是将视频实时流传输到服务器的好方法。其他人一直在使用实时流,他们使用套接字将实时视频流和音频流广播到其服务器。
我认为这很有趣-这是一个链接。
http://www.mattakis.com/blog/kisg/20090708/broadcasting-video-with-android-
without-writing-to-the-file-
system
但那家伙还发布了部分代码示例-
String hostname = "your.host.name";
int port = 1234;
Socket socket = new Socket(InetAddress.getByName(hostname), port);
ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket);
MediaRecorder recorder = new MediaRecorder();
// Additional MediaRecorder setup (output format ... etc.) omitted
recorder.setOutputFile(pfd.getFileDescriptor());
recorder.prepare();
recorder.start();
我不知道的最酷的部分是ParcelFileDescriptor-它在android文件系统上创建了一个实际上是套接字的管道的文件-
因此,写入该文件的所有内容都会通过网络广播到远程服务器。套接字也是执行此类操作的正确方法,因为套接字使您可以连续发送数据直到记录完成,而不必一遍又一遍地重新发送标头。
我认为这项技术很酷的地方是,他实际上是从MediaRecorder接收输出(它将是编码的视频流),然后通过套接字将其泵送到他的服务器。然后,他可以简单地保存通过套接字传入的数据。没有逐帧,没有处理(Android
SDK不能很好地公开SDK中的编码器,并且它们的性能非常密集)。
人们报告说它有效,但是我还没有测试。无论如何,希望这会有所帮助。
我正在尝试使用媒体源扩展API将H.264内容实时传输到HTML5。 下面的方法非常有效: 然后: 我现在要做的是创建一个管道,以便在最短的延迟下实时完成。使用FFmpeg,可以将输出重定向到而不是并获取内容。我不知道是否有可能将MP4Box合并到管道中。 MP4Box可以从非文件源获取输入数据吗? MP4Box可以在实时到达时逐步获取这样的内容(无论是从文件还是从其他来源)吗?也就是说,如果流停
微信文档:https://developers.weixin.qq.com/miniprogram/dev/framework/liveplayer/live-player-plugin.html tips:微信规定以下两个接口调用限制共享 500次/天 建议开发者自己做缓存,合理分配调用频次。 获取直播房间列表 $app->live->getRooms(); 获取回放源视频 $roomId =
LivePlayerContext jd.createLivePlayerContext(string id, Object this) 创建live-player 上下文 LivePlayerContext 对象。 参数 string id live-player 组件的 id Object this 在自定义组件下,当前组件实例的this,以操作组件内 live-player 组件 返回值 L
我在做一个在线电视服务。其中一个目标是在不使用任何其他浏览器插件(Flash除外)的情况下播放视频。 我决定使用MP4,因为它受到大多数HTML5浏览器和Flash(用于回退)的支持。视频通过FFMpeg从服务器上的ASF转码。 然而,我发现MP4不能实时流式传输,因为它有一个必须指定长度的元数据moov原子。FFMpeg不能直接将mp4流式传输到标准输出,因为它将moov放在文件的末尾。(MP4
群内直播安全可控,轻松开启线上授课、企业培训、大型会议、年会展会、视频营销新方式。 一、直播准备工作 发直播预告:为了让大家到时能准时参加-选择会议DING-及时通知参与人员。 创建直播群 发送直播预告 二、发起群直播 1、手机端发起群直播 手机直播特点是灵活方便,随时随地可发起,比较适合用来做活动类的直播。 直播路径:手机端钉钉-进入群-右下角+号-群直播 手机发起群直播 2、电脑端发起群直播
获取直播间名字 // 返回直播间名字,类型为string var roomName = Mudu.Room.GetName() 获取直播状态 // 返回直播状态,类型为number: `1`为正在直播,`0`为不在直播 var roomLiveStatus = Mudu.Room.GetLiveStatus() 获取直播间浏览量 // 返回直播间浏览量,类型为number整数 var room