自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 webRTC源码编译3A处理

代表你已经gclient sync。具体的步骤和问题请查看前面两篇内容。

2024-06-21 14:32:49 51

原创 webRTC源码编译(Android,Linux)

不管哪种方案都是漫长等待,相对于来说第二种方案快一些 中间出现任何问题,再重新运行的时候 gclient sync。给虚拟机分配内存和硬盘空间的时候一定是要8GB和100GB的,不然容易出来运行错误 ,虚拟机:VMware Fusion 13.5。2.webRTC源码。

2024-06-18 14:02:24 45

原创 webRTC源码rtc_base库单独编译

字符串处理,时间处理,io读写处理,log处理,线程封装,网络封装,通用算法。产生一个静态库, 每一个平台会有细微的差别,请自行修改一下CMakeLists文件。|___rtc_base(用于放置build的文件)关于怎么样把webRTC源码拉到本地电脑,请参考网上说明,./src --------- webRTC源码目录。|____rtc_base (要编译的文件都在这个目录)cd 到 ./build/rtc_base/目录。把头文件复制一下,就可以开始使用了。webRTC包含了很多通用的库存。

2024-05-28 18:21:44 47

原创 SpeexDsp的编译和使用

一开始的时候,看到了configure,以为像其它库一下,可以用configure来进行编译, 花了大半天时间 ,编译成功了, 但是放到项目中, 老是找不到方法的实现,具体原因不知道,不知道是不是这个库的时间比较久,不支持现在NDK的版本怎么我的.configure的脚本写错了, 还是什么原因,没有找到下面给出脚本,看看哪位大佬知道原因的,帮忙修正/bin/bashAPI=21thenfiif [!

2024-05-21 13:06:00 361

原创 webRTC源码编译问题记录

在这个下面 [remote "origin"] 添加这一行。修改 .git/config 文件。再执行git branch -r。再执行git fetch。如果没有看到全部的话,

2024-03-29 17:38:28 688 1

原创 webRTC一对一音视频对话

使用socket.io用做信令服务器,功能包括房间管理,信息的转发。先复制一份 cp /etc/turnserver.conf /etc/turnserver.default.conf。注意点:需要在html引入socket.io客户端,有很多种引用方式,这里只在html用标签引入。注意事项:我本人用apt安装后,每次重启系统coturn是自动起来的,到此服务端的工作全部完成了,下面开始客户端代码,也是webRTC的重点。我的老是报这个错误,提示sturn无法使用 报701,没有解决,

2023-12-20 11:37:58 909

原创 FFmpeg 音频编码

比如说ffmpeg自带的AAC编码只接受 AV_SAMPLE_FMT_FLTP, 而且fdk_aac只接受 AV_SAMPLE_FMT_S16,如果出现不一致的时候,可以采用重采样或者FFmpeg的filter进行对应的转换,然后再送入编码器。音频的重要要素/属性一定要填写: bit_rate, channels, sample_rate,sample_fmt.如果出现-22,一般都是哪个参数错误。就是我在下面遇到的问题中所提到的,如果错误是-22,首先考虑是不是参数没有设置成功。

2023-12-16 18:26:06 356

原创 webRTC几张重要的图

在webRTC中SDP和ICE信息都需要依赖信令服务器进行传输与交换,建立P2P连接,之后才能进行音视频通话、传输文本信息。如果没有信令服务器,WebRTC无法进行通信。允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的公网端端口。常用的信令服务器 socket.io。A和B建立网络连接的过程如图。

2023-12-04 11:59:43 382

原创 ubuntu开机出 started gnome Display manager解决办法

问题的原因:/dev/mapper/ubuntu--vg-ubuntu--lv 容量被占满。

2023-11-24 13:50:35 1375

原创 FFmpeg滤镜的使用

aformat滤镜用于音频格式(如采样率,采样格式,声道类型)的转换(相当于实现了SwrContext的功能),它内部最终调用的aresample滤镜,而aresample滤镜内部又是用libswresample模块。输入滤镜的输出端口连接aformat滤镜的输入端口,aformat滤镜的输出端口连接着输出滤镜的输入端口。ffmpeg的滤镜是通过滤镜管道来进行管理的,滤镜管道可以将各个滤镜连接到一起,形成一个处理流水线。的SwrContext实现的。

2023-11-13 22:48:13 87

原创 音视频同步学习总结

解码时帧的顺序: I P B B // FFmpeg 解码器输出的帧是顺序输出(意思就是已经排好序了),所以从代码层面来说是不需要手动排序,解码器内部已经实际了,这也是在FFmpeg解码的时候需要刷空解码器中的队列原因之一。frame_timer为一帧显示的系统时间,frame_timer+delay- curr_time,则得出正在需要延迟显示当前帧的时间。tbr:帧率 ----------- 可以计算出每帧的duration(播放的时长)video_clock:预测的下一帧视频的PTS。

2023-11-13 15:54:55 30

原创 c++ 指针和引用

当你知道你需要指向某个东西,而绝不会改变指向其他东西,(和当你实现一个操作符(operator[])而其语法需求无法由指针达成?只是语法而已),你就应该选择引用,任何其他时候,请采用指针。1.没有所谓的null的引用,引用总必须总代表某个对象,而指针可以改变指向(除const 修饰外),C++要求引用必须要有初值。2.指针和引用最重要的差异,指针可以重新赋值,指向另一个对象,引用却总是指向它最初获得的那个对象。是一个变量,只不过存储的是一个地址,指向内存的一个存储单元。

2023-11-03 18:20:35 21

原创 OpenGLES工作记录1

OpenGL ES program

2023-11-01 15:28:23 37

原创 c++多线程一

一旦出现游离的指针或引用,这种保护就全部形同虚设。在std::condition_variable wait的时候,必须使用std::unique_lock不然就会出现死锁的情况。C++标准库提供了类模板std::lock_guard,针对互斥类融合实现了RATT手法;std::unique_lock占用更多的空间,也比std::lock_guard略慢。std::unique_lock类具有成员函数lock(),unlock(),try_lock(),具有手动加、解锁功能。

2023-10-26 10:41:14 19

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除