栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

将Android设备当成摄像头IPC 实现RTSP 服务器功能 vlc可以直接观看 MediaCodec 编码出来的没有SPS PPS 数据

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将Android设备当成摄像头IPC 实现RTSP 服务器功能 vlc可以直接观看 MediaCodec 编码出来的没有SPS PPS 数据

之前调试过在android手机上 读取摄像头 然后 rtmp推流 或者用ffmpeg拉RTSP的流

这次是需要将Android手机当成一个IPC摄像头,在手机上起一个rtsp server的功能,然后客户端可以直接观看手机摄像头的内容 :

今天刚调试能出来 有点乱 简单记录下:

先看下效果图

启动app显示如下:

点击Test QMCY 左上方按钮上显示的是手机上摄像头的总个数

点一下按钮会在不通摄像头之间切换

电脑上用vlc打开 rtsp流地址 即可看到手机上摄像头的实时视频流

项目工程结构:

这个RTSP 用的是 之前花钱买的一个带源码的RTSP版本,本身是支持Android 

IOS  WINDOWS  Linux  嵌入式Linux等等,

但是 android版本一直没弄好 。就在原来的嵌入式linux版本上移植过来了 

刚开始调试的时候是直接推RTMP服务器的  也可以直接观看 ,后来起RTSP服务器 推流的时候 看不起来  分析码流 发现 mediacodec直接编码出来的码流 只有 I帧和P帧 没有SPS PPS的数据

如下图:

 可以发现只有实时码流只有I帧和P帧 没有SPS PPS信息 。

但是不知道为什么RTMP的可以观看  ,根据以往的经验就直接把SPS PPS和I帧拼接成一帧了 

 MediaCodec可以得到SPS PPS 的数据 

然后检测到I帧的时候 将SPS PPS 和I帧 拼接成一个packet发送出去 ,这样 vlc就正常能观看视频了 

对java不太熟悉 不太确定这段代码有没有问题  不过当成demo还是ok的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/964289.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号