音视频
文章平均质量分 74
卖酒的小码农
这个作者很懒,什么都没留下…
展开
-
ffmpeg源码学习-2、ffplay源码学习(qt环境搭建到代码解析)
ffmpeg的ffplay源码学习,源码迁移到qt上进行编译研究ffplay框架调用流程音视频同步技术音视频seek操作原创 2022-02-21 20:14:47 · 1050 阅读 · 4 评论 -
安卓下调用python(并调用C库暂时失败)暂时使用JNI方式
参考网上的安卓下调用python是有三种方法的,但是尝试也只有JNI方式才可能可行。1、Chaquopy方案(不支持我们需要所使用的cyptes等库并且需要付费的)2、CLE方案,该官网已经进不去了,里面其实刚好有支持我们多进程和调用c的库,但是官网挂了。sdk下载不了3、就是传统的JNI方式了,由java通过JNI调用C,从再调python。而我最后需要再由Python调C,总之弯了一大圈,后来这个方案也被否定了,不采用这种设计架构。原创 2022-01-10 21:24:49 · 2888 阅读 · 0 评论 -
在uos下ffmpeg编码时的几个错误总结
在uos下ffmpeg编码时的几个错误总结1、会在avio_open的时候出错2、avformat_alloc_output_context2出错无效参数;原创 2022-01-07 18:49:46 · 1228 阅读 · 2 评论 -
FFMpeg-12、自带filter实现混音(系统音和麦克风音混合)
获取系统音设备名称Setup Screen Capturer Recorder ,使用ffmpeg自带filter实现系统音和麦克风录制声音进行混音,以及一路静音的场景。原创 2021-12-04 15:31:29 · 1975 阅读 · 1 评论 -
webrtc之msys+vs2015编译openh264
下载软件https://genome.sph.umich.edu/wiki/Installing_MinGW_%26_MSYS_on_Windows 中有详细步骤https://sourceforge.net/project/showfiles.php?group_id=2435&package_id=240780 MinGW下载http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe MSYS下载https://www.nasm.us/原创 2021-11-03 22:46:01 · 425 阅读 · 0 评论 -
安卓编译x264与集成使用ffmpeg-demo
编译安卓下面的x264巨坑首先是Found no assembler 错误,那么就百度方案两种;将 --disable-asm 添加到命令行,或者安装nasm。坑的开始,我想着还是安装上怕之后有东西不支持,所以就去下载高版本的NASM,然后解决了Found no assembler 问题https://www.cnblogs.com/wanggang123/p/8660435.html 解决Found no assemblerhttps://blog.csdn.net/ByChen623/artic原创 2021-11-02 21:26:24 · 3108 阅读 · 0 评论 -
视频格式的转换和一些处理
安卓&C++版本的视频格式的转换函数;已全部实践NV12转YUV420P(I420)NV21转YUV420P(I420)NV21转NV12rgba转yuv420p(I420)yuv420p顺时针选择90度 注意执行完成后后续该视频的宽高要反转YUV420P图片叠加算法原创 2021-10-27 20:24:45 · 529 阅读 · 0 评论 -
安卓-录屏录音录像
由于工作关系又得熟悉一下大学的安卓基础了,完成安卓的录屏录音录像,目前已完成demo分别单独能录制了,之后再完成功能性开发。由此记录一下,感谢github和csdn以及公司大佬的指导。1、录屏主要涉及知识点VirtualDisplay 虚拟屏幕创建从而可以提供屏幕数据MediaCodec 硬编码将屏幕数据编码成H264MediaMuxer 多媒体混合完成mp4文件的封装输出2、录音...原创 2021-10-25 19:37:58 · 1936 阅读 · 0 评论 -
Windows&Linux获取摄像头名称和默认麦克风设备名称
1、Windows下根据摄像头VID&PID获取设备名称与获取默认麦克风设备名称2、Linux下检测当前VID&PID摄像头设备是否存在原创 2021-09-10 20:24:34 · 2440 阅读 · 0 评论 -
ffmpeg源码学习-1、音频解码编码,视频解码编码四个试例程序
ffmpeg源码学习-1、音频解码编码,视频解码编码四个试例程序1、音频解码 Decode_audio2、音频编码 Encode_audio3、视频解码 Decode_video4、视频编码 Encode_video原创 2021-09-10 20:16:44 · 853 阅读 · 0 评论 -
openGL入门之1、基础概念到三角形绘制
学习OpenGL网页:https://learnopengl-cn.github.io/主要从opengl的库编译下载开始学习,了解opengl的工作模式,熟悉它的一些官方名称及相关负责工作如图形渲染管线、图元、顶点着色器、片段着色器,标准化设备坐标,顶点缓冲对象,链接顶点属性、顶点数组对象、GLSL着色器语言、编译链接着色器着色器程序,最后使用不同的基础知识渲染三角形。原创 2021-08-24 22:09:02 · 382 阅读 · 2 评论 -
FFMpeg-11、windows下编译ffmpeg(mscv的失败)
一、介绍1、Auto工具2、MSYS2因为Autoconf是GNU下的工具,这个其实就是类似于cmake的,在cmake流行之前autoconf是应用十分广泛的,一些旧版本的库都是需要运行AUTOconf脚本的,到那时他是只能在linux环境下进行使用。因此需要在windows下进行编译那么需要有在windows下模拟或者中转成linux的工具就是MSYS2工具。他就是一个windows系统下模拟linux的中转器,意思就是可以在将一些linux的命令和文件系统在windows下也可以使用,例如ma原创 2021-08-08 16:13:17 · 623 阅读 · 0 评论 -
FFMpeg-10、完成两个mp4文件的视频拼接输出yuv及mp4
主要是完成解码两个mp4文件将其视频帧进行尺寸转换后进行拼接输出到YUV文件中,其实后续还可以完成将拼接后的视频帧进行编码输出mp4文件的形式。并且代码进行封装将解码步骤封装成一个类。完成输出mp4文件,存在诸多问题1、视频播放很卡顿,不确定是帧匹配的时候锁加多了导致编码的时候太慢了,还是解码原视频帧的时候拼接存在一个等待时间导致的2、优化声音部分未加入可以进一步优化,代码实践;解码一个类EncodeVideoFrame、创建两个对象就可以解码两个文件了编码一个类DecodeVideoFrame原创 2021-08-05 22:37:34 · 1266 阅读 · 1 评论 -
FFMpeg-9、给视频添加实时时间水印drawtext filters+中文水印显示问题
从ffmpeg官方文档介绍drawtext过滤器,从参数实例扩展到命令行实际,C++API实际实现实时时间的水印添加、多处水印添加原创 2021-07-30 23:33:57 · 7587 阅读 · 1 评论 -
编译linux下录屏录音摄像头叠加程序的动态库版本
完成linux下alsa,xcbgrab、v4l2完成录屏录音摄像头视频的组合ffmpeg编码程序的动态库形式。涉及技术;ffmpeg下linux编译+x264Linux下动态库路径搜索设置&动态库的多依赖库cmake&make&g++编译linux zlog日志库gbd调试未解决问题:ffmpeg编译为静态库,制作动态库形式的双录程序,提示报错 recompile with -fPIC原创 2021-07-19 19:30:29 · 342 阅读 · 1 评论 -
Linux下的x11录屏、V4l2摄像头获取、alsa录音、及视频拼接
1、x11录屏查看博客和ffmpeg中X11grap中的录屏部分源码提取xcb_get_image_reply_t *img;xcb_get_image_cookie_t iq;xcb_generic_error_t *e = NULL;xcb_connection_t *conn;xcb_screen_t *screen;int m_iDesktopWidth = 1280;int m_iDesktopHeight = 1024;bool InitVideoInput(){ i原创 2021-07-10 12:45:48 · 1271 阅读 · 0 评论 -
流媒体学习-WebRTC全面入门学习-1
详细介绍WebRTC从入门到完成基本通讯,从初始WebRTC了解运行机制,web服务端等,到实践前准备包括nodejs安装demo开发,以及webRTC中的音视频相关内容,socket相关内容,传输相关内容,最后到媒体能力协商端到端链接以及介绍相关细节原创 2021-06-10 19:35:06 · 2239 阅读 · 5 评论 -
FFMpeg-8、音频编码及重采样
音频编码与视频编码类似的,但是涉及的细节东西还是比较多,之后遇到再持续补充。注意;1、pCodecCtx->frame_size是表示编码器一次能够编码的字节,但是是自动生成的。2、flush_encoder是最后将后面缓冲里面的进行编码3、16位和8位的互转可以自己写函数也可以进行重采样掉APIAPI重采样//申请重采样输出数据内存unsigned char *pcm = new unsigned char[1024*1024*50]; actx = swr_alloc_set_op原创 2021-05-30 21:17:13 · 846 阅读 · 1 评论 -
QT之利用QGraphicsScene图布完成在图片上层图画并放缩保持相对位置不变
一、实践效果图可以看到在图片上层绘制了三笔,当图片放大放小保持图画与图片相对位置的不变性。在需要将批注网络传输再其他地方的当前图片上同样显示(类似远程批注功能)的时候就需要实现这样的功能了,记录图片的相对位置进行传输,不受窗口大小的影响。二、实现相对位置不变的算法1、存放时curPoint.x = ((float)curPoint.x - 2)/(width() - 2)*m_image.width();curPoint.y = ((float)curPoint.y - 40)/(height原创 2021-05-05 10:30:42 · 4944 阅读 · 0 评论 -
Opencv4学习-1、全面入门到完成人脸识别
对opencv4进行了全面的入门及学习了解,从环境安装到Mat到一系列操作图像的API,图像的翻转旋转处理,键盘鼠标的操作事件,摄像头视频文件的读写处理,几何形状的绘制,以及直方图等概率和实践,卷积高斯双边高斯的初识和实践,以及基于基于dnn的Tensorflow模型人脸识别 。每个模块都进行了概念记录和代码实践和API介绍。可用于Opencv4的入门和回顾原创 2021-04-14 22:26:18 · 1900 阅读 · 0 评论 -
FFmepg-8、视频编码相关,遇到2个问题未解决
基于FFMPEG的视频编码器。该编码器实现了YUV420P的像素数据编码为H.264的压缩编码数据,或编码成其他文件也是类似的操作。主要操作是读取原来的YUV数据压缩到文件中并且写入文件头尾,存在的两个问题暂时先记录1、avcodec_receive_packet的时候总是提示EAGAIN错误,而使用旧的avcodec_encode_video2却可以编码2、ffmpeg自带的exmple中的encode_video.c要如何运行,相关函数和要注意的地方第1步、就是得到AVOutputForma原创 2021-04-04 19:12:45 · 698 阅读 · 0 评论 -
FFMpeg-7、libavfilter滤波器相关介绍,实现翻转叠加和水印
1、AVFilter简介FFmpeg中的AVFilter模块进行帧数据处理的开发,AVFilter模块对帧数据处理进行了很好的抽象,对其中的帧数据处理(包括音频和视频数据)则相对要多样化一些,比如对视频做尺寸变换,进行音频音量均衡,直播中的美颜处理,多路流合成等等,这些都是属于流程中的帧数据处理。一般的编解码流程就是;原始音视频–>解码–>帧数据处理–>编码–>输出音视频在编码前,ffmpeg可以对raw(真实/原)音频和视频使用libavfilter库中的滤镜进行处理。(非原创 2021-04-04 12:00:53 · 1209 阅读 · 0 评论 -
FFMpeg-6、Libavdevice+SDL捕获显示摄像头、录屏
一、使用命令进行摄像头 录屏相关测试实现1、使用dshow的时候找不到对应设备根据网上步骤使用dshow命令查找设备,发现视频设备只有一个就是摄像头 音频信号也就有一个,没有屏幕设备和对应的音响设备。发现需要下载第三方软件注册录屏dshow滤镜如screen-capture-recorder,网上下载太慢 已附上百度云链接。链接: https://pan.baidu.com/s/1Y_idLtI-mzSyLW_Wk3wCYQ 提取码: atmv安装下载后就可以显示出四个设备了命令;ffmpeg原创 2021-03-30 15:42:24 · 1943 阅读 · 0 评论 -
ffmpeg-5、SDL的vs环境部署及图片显示 、视频播放、音频播放
SDL简介;(Simple DirectMedia Layer)库的作用主要是封装了复杂的视音频底层交互工作, 简化了视音频处理的难度。1、SDL环境部署vs2015环境部署报错,在头文件目录、 lib目录和依赖库都属性配置正确的情况下仍然报链接错误,如下报错1>SDLmain.lib(SDL_win32_main.obj) : error LNK2019: 无法解析的外部符号 _SDL_main,该符号在函数 _main 中被引用LNK2019 无法解析的外部符号 __imp__fpri原创 2021-03-28 20:09:22 · 400 阅读 · 0 评论 -
FFMpeg-4、基于QtCreat开发使用FFMpeg解码后QTAudio和QTOpenGL播放显示
一、基本分析目前实现的第一个版本 之后进行改进和优化,第一个版本主要实现内容有;1、读取视频文件使用ffmpeg进行解码、音频重采样得到的数据2、基于qt提供的QAudioFormat进行音频播放,QTOpenGL进行视频播放3、qt界面管理设计了打开文件(考虑多次打开) ,暂停(考虑缓冲,音频存在三个缓冲 解码的缓冲队列,播放QAudioOutput的自带缓冲,QIODevice的硬件设备缓冲) ,以及滑动条的拖动(涉及qt自带滑动条点击每次只能移动一下进行重载实现点击在哪进度就移动到哪里)最后原创 2021-03-16 22:00:03 · 609 阅读 · 0 评论 -
海思项目学习记录 -1、HI3518E的sdk编译部署
视频行业涉及模块海思SDK初识、进行交叉编译工具链,mmp环境部署及介绍原创 2021-02-28 21:46:33 · 708 阅读 · 0 评论 -
海思项目学习记录 -2、解析mmp的sample
对海思mmp的sample工程整体分析。阐述图像像素格式的RGB和YUV存储方式 以及视频缓冲池VB,VI,VPSS,VENC等模块。分析sample工程原创 2021-03-01 17:25:11 · 2019 阅读 · 1 评论 -
海思项目学习记录 -3、ORTP库传输
1、ORTP库安装编译注意;要增加H.264的payload支持。在src/avprofile.c中357行添加:rtp_profile_set_payload(profile,96,&payload_type_h264);//这个96是h.264帧头的一个信息配置和编译、安装(1)进入ortp目录执行./autogen.sh(2)错误1:./autogen.sh: line 44: libtoolize: command not found解决:sudo apt-get instal原创 2021-03-02 15:45:06 · 847 阅读 · 0 评论 -
海思项目学习记录 -4、H.264及RTSP协议实时传输
一、H.264介绍1、h.264编码原理(1)图像冗余信息:空间冗余(一副图片一个区域的RGB或YUV变化不大)、时间冗余(视频时间过去但是图像没有什么变化)(2)视频编码关键点:压缩比、算法复杂度、还原度;(研究算法的关键就是这三者的平衡)(3)H.264的2大组成部分:VCL(视频编码)和NAL(压缩之后的视频流如何被网络传输,那边如何解码播放)2、编码相关的一些概念宏块 MB(macroblock) 多个像素组成的一个区域,就是因为在一份图像中在不同的一小个区域是具有相似性的,因此将整个原创 2021-03-05 15:13:45 · 4900 阅读 · 7 评论 -
FFmpeg-1、VS和QT环境搭建
一;vs开发环境搭建1、从ffmpeg复制相关文件到工程目录2、在src下建立vs工程3、编写代码,设置环境属性#include <iostream>using namespace std;//要引用C语言的库文件 则要加__Cpulsplusextern "C"{ #include <libavcodec/avcodec.h>}#pragma comment(lib,"avcodec.lib")//添加库文件,也可以在属性处添加int main(){原创 2021-03-08 21:03:17 · 493 阅读 · 0 评论 -
FFmpeg-2、编解码及视频像素格式尺寸转换和音频重采样
一、基础知识解封装(本来我们看到的文件都是mp4,flv流媒体格式等格式的文件,首先需要识别这些文件格式才能解析里面的内容,这部就解封装)解码(解封装看到的数据是经过 压缩的音视频流,如果需要播放或者再次处理需要进行解码,编码的反向操作,就是视频需要显示就需要解码成显卡支持的像素格式,音频需要播放处理就需要重采样成声卡支持的格式)常见封装格式 ; AVI 任意压缩格式,FLV,ts流媒体格式,ASF,mp4是MPEG-4压缩封装协议里面定义好的。常用编码格式视频;H.264(存在参考帧和i帧的) ,原创 2021-03-12 10:04:31 · 2210 阅读 · 0 评论 -
FFMpeg-3、基于QT实现音视频播放显示
1、QT的音频录制QAudioFormat原创 2021-03-12 21:21:18 · 1466 阅读 · 0 评论 -
杂项操作问题记录
1、USB转串口驱动安装无效问题;后面使用了CH340芯片后使用之前的PL2303驱动则识别不了。解决方法;下载驱动精灵进行扫描识别从而安装对应CH340的驱动原创 2021-02-28 13:34:48 · 283 阅读 · 1 评论