将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的

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

QMCY_jason

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

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

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

打赏作者

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

抵扣说明:

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

余额充值