webrtc 支持h264 思路

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/47174209 未经博主允许不得转载。

1,遇到问题

首先webrtc是非常好的开源项目,本身就是专门搞这个的公司,被google收购然后开源的项目。

可以快速搭建一个视频聊天项目,而且也可以自己进行编译。

https://github.com/pristineio/webrtc-build-scripts

使用maven直接下载好编译的so jar工程。

http://mvnrepository.com/artifact/io.pristine/libjingle

但是由于google推广vp8,vp9的问题,h264这个模块肯定被砍下了。

google已经非常大度的开放了整个项目,就差这个h264,而且h264还有版权费。

测试了下效果,如果使用vp8我的三星收集跑不了720p的视频聊天。

太费cpu了。这个是一个无法绕过去的坑,只能使用h264解决。

2,查看手机android支持neon

使用adb shell连接到手机上。

cat /proc/cpuinfo
Processor   : ARMv7 Processor rev 3 (v7l)
processor   : 0
BogoMIPS    : 38.40

processor   : 1
BogoMIPS    : 38.40

processor   : 2
BogoMIPS    : 38.40

processor   : 3
BogoMIPS    : 38.40

Features    : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part    : 0xc07
CPU revision    : 3

Hardware    : Qualcomm MSM 8226 (Flattened Device Tree)
Revision    : 0007
Serial      : 0000000000000000

说明手机已经支持NEON指令了,而h264就是利用NEON加速的。

3,思路&方案

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/47174209 未经博主允许不得转载。

不是专门做c开发的,搞这个难度有点大。

基本思路就是参考google group上面的方案。能搜索到的唯一一个资料了。

https://groups.google.com/forum/#!topic/discuss-webrtc/U-y3or-dBOU

这个哥们提供了一个wrapping。

也没有看懂。

cisco开源了一个叫openh264的项目。

https://github.com/cisco/openh264

http://www.openh264.org/ 项目官方网站

通过啥办法把着两个项目结合起来就行了。

要不然就是等着这俩哥们和好吧。。。。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-16 18:21:50

webrtc 支持h264 思路的相关文章

让WebRTC支持H264编解码

最近实验了下如何让WebRTC支持H264编码,记录下,供有需要的人参考. 说明一下,我是在 Ubuntu Server 14.04 下编译的 WebRTC ,使用 native(C++) api 开发 WebRTC 应用.所以我的调整都是基于 native 代码. 最终的效果是浏览器可以用H264发送视频,也可以接收H264视频. 注意,WebRTC 使用 OpenH264 来做 encoder (见 h264_encoder_impl.cc),使用 ffmpeg 来做 decoder (见

windows webrtc支持H264的源码编译

1.代码拉取  https://www.cnblogs.com/132818Creator/p/12516850.html 2.执行命令 gn gen out/h264 --ide=vs2019 --args="proprietary_codecs=true rtc_use_h264=true ffmpeg_branding=\"Chrome\" is_debug=true target_cpu=\"x64\" rtc_include_tests=fals

sonix uvc驱动的添加 RT5350支持H264

根据sonix提供的驱动,需要在内核下进行配置,以添加到内核或与模块的方式进行编译: 1.makefile中添加驱动的目录,尽量保持和原有的一致, obj-$(CONFIG_USB_SN9C102)       += sn9c102/ obj-$(CONFIG_USB_SONiX_UVC_SN9C29x) += sonix_uvc_sn9c291/ obj-$(CONFIG_USB_ET61X251)      += et61x251/ 2.kconfig中添加src目录如下 source "d

sonix uvc驱动的加入 RT5350支持H264

依据sonix提供的驱动,须要在内核下进行配置,以加入到内核或与模块的方式进行编译: 1.makefile中加入驱动的文件夹,尽量保持和原有的一致, obj-$(CONFIG_USB_SN9C102)       += sn9c102/ obj-$(CONFIG_USB_SONiX_UVC_SN9C29x) += sonix_uvc_sn9c291/ obj-$(CONFIG_USB_ET61X251)      += et61x251/ 2.kconfig中加入src文件夹例如以下 sourc

让 WebRTC 使用外部的音视频编解码器

WebRTC 支持使用自己的编解码器(限 native 开发),音频,视频都可以.这里以视频编码为例来分析下 WebRTC 中相应的源码. CreatePeerConnectionFactory 在 webrtc/api/peerconnectioninterface.h 中有个方法 CreatePeerConnectionFactory,原型如下: inline rtc::scoped_refptr<PeerConnectionFactoryInterface> CreatePeerConn

WebRTC编译系统之gn files

在"WebRTC 构建系统介绍之gn和ninja"中,大概介绍了 gn 和 ninja 的简单用法,这次来看看 gn 用到的项目文件 .gn . .gni 和 DEPS ,它们指导了如何生成 ninja 构建文件. 借用 C++ 的概念,如果把 gn 看成一个编译系统, .gn 就是源文件, .gni 就是头文件.我们姑且这么理解就好了(其实 gni 里做的事情, gn 都可以做).DEPS 主要用来设定包含路径. gn 和 gni 文件都在源码树中,比如 src 目录.当执行 gn

webrtc系列文章

WEBRTC RTP/RTCP协议族 2017-02-22 20:15 阅读(144) 评论(0) WebRTC 基于GCC的拥塞控制(下) 2017-02-22 15:44 阅读(108) 评论(0) WebRTC 基于GCC的拥塞控制(上) 2017-02-22 11:37 阅读(65) 评论(0) WebRTC 视频接收缓冲区基于KalmanFilter的延迟模型 2017-02-22 11:25 阅读(122) 评论(0) WebRTC 拥塞控制技术 2017-02-22 11:04 阅

CSDN日报20170407 ——《嘿,程序猿,你该学点经济学了!》

[程序人生]嘿,程序猿,你该学点经济学了! 作者:夏雨 笔者一直认为,一个好的程序猿,不仅仅是代码敲得好,其他方面的知识和能力同样很重要.特别是随着年龄的增长,很多人也慢慢的往管理层发展.这个时候沟通与协调能力变得更加重要,而一些策划,推广方面的知识也同样是不可缺少的. 说到这里我们不得不提到经济学.懂得一些经济学的知识,不仅能在工作中运用,还有一个大家很关心的作用,那就是理财! [Java 编程]死磕Java并发--深入分析CAS 作者:chenssy CAS,Compare And Swap

WebRTC 视频对话

今天聊一下WebRTC.很多开发者,可能会觉得有些陌生,或者直接感觉繁杂.因为WebRTC在iOS上的应用,只是编译都让人很是头痛.这些话,到此为止,以防让了解者失去信心.我们只传播正能量,再多的困难都是可以解决的.本博客会不断更新增加内容,不要怕长.首先看一下定义.WebRTC,名称源自网页实时通信(WebReal-TimeCommunication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2010年以6820万美元收购GlobalIPSolutions公司而获得的