- 博客(39)
- 资源 (4)
- 收藏
- 关注

原创 万能版本的ffmpeg
最近在搞屏幕录制软件,需要整合声卡,麦克风音频,还有屏幕画面,本想直接用ffmpeg.exe直接跑进程,录屏的进程发现经常退不出,在网上找了ffmpeg的源码编译完成后,直接把ffmpeg源码拷贝进来,修改后,直接命令行参数传进去,然后再子进程中自己控制ffmpeg流程,可以实现命令行下的所有功能。开发环境 vs 2015 Qt5.9.31 vs 2015 编译ffmpeg源码vs下...
2019-12-07 11:04:41
229
原创 libphone desktop运行
但是linux端打开视频按钮时,会崩溃,是因为Linux端的的渲染插件位置不对,打开编译生成路径,在lib路径下,将libmsqogl.so文件复制到mediastreamer2/plugins目录下。其实后面还有一些需要静态加载的文件,我把他都放在share目标下了,可直接将share目录下的文件拷贝到build目录下的share文件加下即可;至此,我们把linphone-desktop Linux端编译运行的坑都踩完了,后面就可以去分析代码了。通过切换堆栈,查看是缺少文件,
2024-11-23 15:35:13
395
原创 ffmpeg学习-1 音视频常用处理流程
ffmpeg 常用结构体介绍AVFormatContex 多媒体环境上下文,打开一个多媒体文件后,其可以作为该多媒体文件的上下文环境。 AVStream 对应上一节中的流的概念,每个多媒体文件有音频流与视频流,对应的就是AVStream AVPacket 从流中获取到的一个个包即使AVPacket,对应上一节中的包的概念,多个帧压缩后成包,多个包组成一个流ffmpeg 操作数据流的基本步骤...
2021-04-09 09:26:55
217
原创 webrtc c++ (四)peerConnection creatrOffer分析
基于通过webrtc自带的peerConnectionClient例子来分析,首先连接服务器,当有其他客户端上线后会接收到通知,界面增加对方主机的名称,双击后再主界面消息响应层会进入ConnectToPeer函数//peerconnectionClient的消息分发函数bool MainWnd::PreTranslateMessage(MSG* msg) { bool ret = false; if (msg->message == WM_CHAR) { if (msg->
2020-07-01 12:35:41
1632
原创 webrtc c++(三) peerConnection分析
peerconnection是webrtc面向外面的音视频交互的统一接口,可以理解为一个功能特别强大的socket接口,里面保存了实时交互的所有信息,同时音视频的转发与接收也是通过peerconnection来完成1 peerconnection 概述peerconnection继承自PeerConnectionInterface 接口,所以作为对外暴露的统一接口为PeerConnectionInterface,通过工厂方法来通过统一创建PeerConnectionInterface 来创建peer
2020-06-30 18:55:29
2676
原创 webrtc c++(二) webrtc音频操作麦克风录音与播放,声音控制
由于新版本的webrtc工程太过于庞大,对于理解源码很不方便,所以以后都采用老版本的wenrtc,以方便理解webrtc源码 下载 链接:https://pan.baidu.com/s/14ECsWNgQ4ZxrxG0tO22E0w提取码:ups7这个版本中webrtc 音频核心为webrtc::VoiceEngine* ptrVoEngine_; //核心引擎类,下面的四个类的都是基于引擎创建的webrtc::VoEBase* ptrVoEBase_;webrtc::VoEVol..
2020-06-23 17:48:47
8300
原创 webrtc c++ (一) 打开摄像头设备并显示
void rtcDevice::GetDeviceList(){ //获取到系统下所有的设备信息 std::unique_ptr<webrtc::VideoCaptureModule::DeviceInfo> info(webrtc::VideoCaptureFactory::CreateDeviceInfo()); if (info == nullptr) { return; } for (int i = 0 ; i < info->NumberO.
2020-06-16 13:48:05
3908
1
原创 ffmpeg学习-0 音视频基本概念
1 通常所说的音视频文件其实是一个容器,这个容器你中包含了多路流,比如音频流与视频流,将音频与视频包装在一起就成了多媒体文件2每种流都是由不同的编码器编码的,比如视频常用的有MP4编码,mpeg4编码3从流中取出的数据称为包,一个包里面可能包含多帧数据,这就需要多在流中的数据在进行处理,4视频帧其实是原始的未压缩的数据,通过 压缩后会被打成包,这个包里面就可能会有多帧数据,对应于3中的...
2020-03-14 16:40:13
225
原创 c++插件技术初步--动态创建对象
c++动态创建对象,思路:按照对象名称来动态创建,将对象名称与创建函数一起保存到map中,创建时通过map来查找返回;#pragma once#include "DynCreateBase.h"#include <iostream>using namespace std;class Shape{public: Shape() = default; virtual...
2020-03-08 15:19:42
361
原创 c++11实现线程池
共享队列的实现/*** *泛型的 *共享队列 * */#include <iostream>#include <mutex>#include <condition_variable>#include <list>using namespace std;template<typename _T>class...
2020-03-06 15:02:24
168
原创 cmake学习二 同级目录下多个文件生成exe
同级目录,添加多个代码源文件,比如同级目录下main.cpp test.h test.cpp文件,如下图只需要修改#3指定生成的可执行程序与依赖程序 即可#3指定生成的可执行程序与依赖程序add_executable (test main.cpp test.cpp) //源文件一直添加即可也可以通过cmake 内置的函数来直接获取当前路径下的所有source文件的列表,并保存...
2019-11-14 15:18:51
1245
原创 cmake 学习教程(一) 最简单的cmake工程
最简单的cmake#1指定cmake的版本cmake_minimum_required(VERSION 2.6)#2指定工程名称project(Test)#3指定生成的可执行程序与依赖程序add_executable (test main.cpp)main.cpp 如下#include <iostream>int main(){ std:...
2019-11-14 14:28:23
868
原创 Qt 图片查看器 支持鼠标缩放大小 拖动位置等
由于工作需要需要编写一个图片查看器,需要支持鼠标滚动缩放大小,鼠标移动图片位置等,由于无法上传gif,截取的gif示例图暂时不上传了,讲一下大概思路1 鼠标点击移动图片 通过重写鼠标点击事件获取到点位,在鼠标移动事件中进行move操作,在paintEvent中指定绘制起始点即可, 与QDialog 移动操作一样,代码如下//mousePressEventvoid PicSh...
2019-11-13 20:05:52
1100
转载 Qt QDialog exec非模态设置方法
QDialog dlg(this); //指定父窗口,可以让你的任务栏不显示标记,否则和QWidget效果一样 dlg.setModal(false); dlg.Show(); if(dlg.exec() == QDialog::Accepted) { qDebug() << QString:...
2019-11-05 10:30:25
800
原创 vs2015下 cmake编译 vlc-qt与使用
最近使用vlc-qt做播放器,效果比较好,可以播放本地文件与rtmp流,特别rtmp流的播放,由于vlc库的延迟,可能会有2s左右的延迟1 vlc库的下载,下载的vlc都不带sdk目录了,所以现在下来的安装文件不能用来开发,推荐地址http://download.videolan.org/pub/videolan/vlc/ 推荐下载3.7.1版本的,之前下了个2....
2019-10-31 17:31:56
867
1
原创 Qt Mtd调用方式
QT vs下 默认MDD方式调用依赖库,当有的第三方依赖库是需要MTD方式调用的时候却又无法更改时,需要将工程修改为MTD,修改为mTD后编译还是会出错,提示检测到RuntimeLibrary的不匹配,在qtmain.lib中qtmaind.lib(qtmain_win.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_Dyna...
2019-10-11 16:59:33
1291
原创 Qt Vs Tools无法打开Qt project的处理
最近不知道为什么Qt vsTools打开QT .pro文件总是崩溃,无法打开,想重装,把原先的卸载掉后重装,发现提示“此扩展已安装到所有适用的产品”,无法安装,想到可能是之前的数据没有卸载干净,导致重装失败,找到vs的插件安装路径C:\Users\lenovo\AppData\Local\Microsoft\VisualStudio\14.0\Extensions,可以看到里面有三个目录,...
2019-08-23 11:01:47
5069
原创 Qt QTextEdit 设置某行文字为特定颜色,订制个性化控制台输出
最近做一个控制台输出的程序,中间定义了不同的输出登记,比如绿色为运行等级,黄色为警告等级,红色为严重错误等级,需要QTextEdit对传来的不同等级的文字进行不同的处理,效果如下:void MainWindow::OutPutMsgToConsle(ConSleLevel level,const QString &strText){//日志等级大于配置文件允许的最高等级,就返...
2019-08-15 16:50:19
9477
4
原创 Qt QTreeView 选中节点不会拓展到整个宽度的解决办法
在做设备列表的时候,发现QTreeView 被选中后不会拓宽到整个列宽,入下图这就导致界面极其不美观,特别是需要对一些设备做一些特殊处理的时候,不如设置背景色等等;解决办法:1 QListView 不会出现这种情况,将列表改为ListView, 但是如果需要设备树递归展示的时候这种方法是不可行的;2 通过重写QStyledItemDelegate代理类来实现,由于所有的i...
2019-08-15 16:30:00
1300
原创 Qt 在tableview中通过setIndexWideget添加widget显示错位问题
在 QtableVIew中添加添加静态窗体可以直接使用setIndexWidget()函数,比如;QComboBox *idCom = new QComboBox();idCom->setFocusPolicy(Qt::NoFocus);m_ptTbView->setIndexWidget(m_ptTbModel->indexFromItem(ptIdItem), i...
2019-07-18 12:20:40
4162
原创 STL 学习之vector测试
vector 是向量数组,一端开口的数组,其内存结构图如下所示可见其在尾部插入数据速度很快,而在其他地方插入数据将会很慢void testVector(){ char buf[10] = { 0 }; vector<string> test_vec; clock_t timeStart = clock(); for(l...
2018-12-02 17:43:52
694
转载 Qt 下ffmpeg环境配置
Qt下配置 ffmpeg,首先下载ffmpeg-3.2-win32-dev 版本 在工程文件中添加导入的lib和includeINCLUDEPATH += D:/ffmpeg/ffmpeg-3.2-win32-dev/includeLIBS +=-LD:/ffmpeg/ffmpeg-3.2-win32-dev/libLIBS += -lavcodec -lavf
2017-11-22 15:51:56
3105
原创 STL学习之string类
1.string 与char *的相互转化char * to string 可通过构造函数直接转化strings1="123456";string to char *,可通过string类的c_str()函数获得char *的地址 const char *str = s1.c_str();如下:·void main1()·{ ·strin
2017-10-23 19:48:17
201
原创 Qt5.7以上调用虚拟键盘(支持中文),以及源码修改(可拖动,水平缩放)
Qt 5.7及以上版本支持了虚拟键盘的支持,但是这个虚拟键盘太不好用,占据半个屏幕,而且不能放大缩小,不能拖动首先,下载Qt虚拟键盘源码并解压,并切换到该目录下然后配置支持中文: qmake CONFIG+="lang-en_GB lang-zh_CN" ,默认支持英文,lang-zh_CN就是中文支持选项 mingw32-make
2017-07-25 08:59:06
20589
18
原创 QT调用vc dll中文乱码的问题
之前在做项目的时候需要身份证识别,需要调用到dll,然后将读取到的信息显示到界面上只需要将获取到的字符串转换成GBK编码即可转换函数如下:QStringregisterInfoFill::GBKtoUtf8(constchar *src){ QTextCodec *tc2 = QTextCodec::codecForName("GBK");
2017-06-28 14:06:42
1011
原创 Qt qsqlquerymodel 中文显示乱码问题解决
在QT数据库编程过程中,碰到了中文乱码的问题,最终解决了在Qt5将中文改成utf-8后默认是可以正常显示的,所以中文乱码就要看你的数据库中保存的数据是什么编码,如果是utf-8,那就要检查你自己的Qt creator的配置,是不是默认utf-8的编码。如果不是可以通过重写QMySQlQueryModel::data函数来实现.h文件:class QMyQueryModel:
2017-06-07 14:38:06
11358
原创 Qt Qtableview 无法文字居中显示的问题
在Qt中无法通过view没有将文字居中的函数,将文字居中显示,可以通过重写QsqlModle的data函数来实现.h文件class QMySQlQueryModel:publicQSqlQueryModel{public: explicit QMySQlQueryModel();public: QVariant data(const QModelI
2017-04-14 09:19:14
10849
1
原创 QT下调用mysql driver not loader的问题
开发环境 win10 ,Qt5.7这个问题搞了好久,按照网上的说法去做,都不行。最后看到这篇文章,跟我的环境一样,试着弄了一下,成功。http://blog.csdn.net/u010029064/article/details/54578222这里是直接将mysql的dll放到mingw/bin的目录下,然后自己又尝试着编译了一下,成功。个人理解,以下问题,首先,my
2017-03-31 09:56:24
910
原创 mysql设置成可以远程登陆
1.设置可以远程登陆:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;'root'是指用户名 ‘%’绑定的ip地址, ‘123456’表示密码好多说这样修改就可以了,但是试了还是不可以,远程登陆不上2.修改mysql的配置文件vim /etc/m
2017-03-30 16:44:48
513
转载 QT学习之设置界面风格
#include "mainwindow.h" #include #include #include int main(int argc, char *argv[]) { QApplication a(argc, argv); QStringList keyList = QStyleFactory::keys(); for(int i =
2017-03-24 10:53:14
5343
转载 QT学习之lQLable实现超链接功能
QLabel* label = new QLabel("QLable显示的内容",this); connect(label,SIGNAL(linkActivated(QString)),this,SLOT(openUrl(QString)));//通过一个槽函数来处理点击事件 //将链接下面的横线去掉 label->setText(QStr
2017-03-24 10:45:07
925
转载 wifi基础知识
http://blog.chinaunix.net/uid-9525959-id-3326047.htmlhttp://blog.csdn.net/myarrow/article/details/7930131
2017-02-23 14:43:22
321
转载 openwrt学习之虚拟机vm下编译运行测试
之前成功编译出来openwrt的img固件,现在进一步学习,编译一个基于x86cpu的镜像,并用vm跑起来,自己学着先配置一下1.更新openwrt./scripts/feeds update -a2.更新完成后,安装需要的更新依赖包/scripts/feeds install -a看到网上说有的需要把LUCI编译进内核,之前没有接触过,不知道是什么,查了一下,是路由器we
2017-02-22 09:06:25
1580
转载 http协议详解
详细介绍http协议的文章http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html
2017-02-21 15:59:24
220
原创 openwrt学习之编译初步体验
一 相关环境配置: 虚拟机下Ubuntu16.04LTS ,目标版,树莓派3B二 编译 1.配置环境 在编译之前需要安装相关开发的依赖包,sudo apt-get install git g++ make libncurses5-dev subversion libssl-dev gawk libxml-parser-perl unzip wget python xz
2017-02-17 14:08:21
280
原创 数模电学习之电容
一 电容 电容的常见作用:旁路,滤波,去耦和储能的作用 旁路作用: 1、使输入电压均匀化,减小噪声对后级的影响。2、进行储能,当外界信号变化过快时,及时进行电压的补偿。如下图:当vcc变化过快或噪声过大时,可能会引起cpu震荡,加入电容保护好,可以起到很好的保护作用去耦(退耦)电容作用:1、去耦电容和旁路电容的作用是差不多的,都有滤除干扰
2017-02-08 16:26:37
828
原创 数模电学习之二极管
二极管的特性总结1、电路中二极管导通之后,所分电压值为 0.7V。 2、发光二极管导通之后为 分压值 1~2v,电流范围为5~20mA3、 二极管反相不导通,但是当所给的电压值超过它的反向击穿电压时,那么二极管也将导通,(应用中要注意二极管的反向最大电压值,防止二极管烧坏)4、当正向电压很小时,二极管不导通,当电压至少达到0.5V以上时,二极管才导通。伏安特性曲线如下图
2017-01-25 16:18:30
785
ffmpegSrc.zip
2019-12-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人