![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
音视频
文章平均质量分 63
微澜-
经过了很久很久,久到好像过去了几个世纪的时间,才知道,自己应该去到外面看看;才知道,付出就是收获。
展开
-
查询directshow错误句柄的字符串形式
directdraw的错误返回值查询原创 2024-03-02 17:52:58 · 224 阅读 · 0 评论 -
windows11上DirectDraw7调用GetCaps函数获取DDCAPS_OVERLAY总是0
directdraw的overlay能力不能使用原创 2024-01-20 21:51:18 · 406 阅读 · 0 评论 -
腾讯音视频服务的使用体验
腾讯音视频我从2015年就开始使用了,那时候还是从qavsdk1.01版本,刚开那几年错误一大堆,搞了几年了还是错误一堆,都不好意思收钱。刚开始叫互动直播,后来还弄了个随心播,随心播(ilivesdk)就是qavsdk的封装加强版。直到2019年腾讯音视频进行大的改动,命名实时音视频trtc,这是个功能稳定的完善的版本。...原创 2022-07-03 15:03:26 · 1050 阅读 · 1 评论 -
转换YV12到RGB565图像转换,附YUV转RGB测试
转换YUV420P到RGB565,并写入ddraw表面显存pdst中,先创建转换表,然后把每一个像素进行转换。原创 2022-06-27 16:44:04 · 781 阅读 · 0 评论 -
大华设备播放过程中设置播放速度
在网络不稳定的时候,控制播放速度总是让人头痛的事情。设置播放速度有两种方法,一种是按照速度进行传递和计算,一种是按照帧率来计算。因为大华的sdk默认使用帧率来计算,如果换算成速率工作量很大,出力不讨好。不如直接调用接口,设置帧率。...原创 2022-06-27 16:23:58 · 1747 阅读 · 0 评论 -
大华sdk使用问题
这是十年前的问题了,大华sdk使用的时候存在速度控制,逆向播放,退出缓慢,定位控制,停止播放画面停留等问题原创 2022-06-27 16:11:42 · 2828 阅读 · 0 评论 -
从MediaRecord录像中读取H264参数
mediarecorder(H264)的录制数据的开头就包含了SPS和pps参数,分析一下取出来即可,并且相同的设备、相同的配置获取的sps,pps都是相同的。原创 2022-06-26 14:23:15 · 1229 阅读 · 0 评论 -
acmStreamOpen返回值问题
ACM(Audio Compression Manager,音频压缩管理器),它们负责管理系统中所有音频编解码器。只要在系统中注册号解码器就能使用acm解码,应用程序可以通过ACM或VCM提供的编程接口调用这些系统中现成的编解码器来实现音频或视频数据的压缩和解压缩。这东西看上去强大,对使用者却很不友好,不好用。.........原创 2022-06-21 17:29:36 · 173 阅读 · 0 评论 -
当年的扒拉oSIP代码的经历
描述:2005年的时候,还没有软件的集成度还没现在那么高,自己也年轻,曾经预研过sip,因为也只是自己一个人在那里鼓弄,最后的结果也没有真的应用到产品,而是使用了第三方插件intellIPhoneSDK。这个项目要实现什么功能呢?就是需要在项目中可以打电话到对方手机。对这个功能实现的只有自己一个人,经理对我很支持,在业务逻辑方面做支撑。一共经历3各阶段,winrtp阶段,osip阶段,intellIPhoneSDK阶段。原创 2021-11-22 13:06:09 · 371 阅读 · 0 评论 -
android中使用sdl时先退出(sdl_thread未关闭)再进入出错
编者:李国帅qq:9611153 微信lgs9611153时间:2014/2/17 背景:在android上使用sdl进行媒体播放会遇到后退停止的问题。问题描述:在开发的时候,出现第二次调用sdl显示失败libEGL: call to OpenGL ES API with no current context (logged once per thread)可能的原因:OGL ES所在的线程被阻塞或者被挂起,导致渲染设备上下文丢失。暂时不清楚怎么解决,需要进一步的..原创 2021-02-15 17:57:52 · 588 阅读 · 0 评论 -
G729调用方法及使用wavlib播放出现颤音的解决方法
编者:李国帅qq:9611153 微信lgs9611153时间:2005-11-30 调用方法:#include "G729Codec.h"#include <string.h>#include "g729a.h"#pragma comment( lib ,"../bin/g729a.lib" )//////////////////////////////////////////////////////////////////////// Construction.原创 2021-02-15 15:02:00 · 581 阅读 · 0 评论 -
WinRTC中的简单音频混频器代码
编者:李国帅qq:9611153 微信lgs9611153时间:2005-11-1 背景原因:多年前曾做过sip客户端,测试过几个软件,其中包含有音频的简单混音,有兴趣可以看一下。做法仅仅把音频相加。代码://///////////////////////////////////////////////////////////////////////////#include "resource.h" // main symbols#include "windows..原创 2021-02-15 14:43:00 · 344 阅读 · 0 评论 -
回声的来源和消除(转载)
时间:2006-3-3Q:请问打电话时,听到的回音是哪来的?A:在PBX或局用交换机侧,有少量电能未被充分转换而且沿原路返回,形成回声。如果打电话者离PBX或交换机不远,回声返回很快,人耳听不出来,这种情况下无关紧要。但是当回声返回时间超过10ms时,人耳就可听到明显的回声了。为了防止回声,一般需要回声消除技术,在处理器中有特殊的软件代码监听回声信号,并将它从听话人的语音信号中消除。对于VOIP电话设备,回声消除技术是十分重要的,因为一般IP网络的时延很容易就达到40~50ms。 ”一、 因特网..原创 2021-02-15 13:33:30 · 621 阅读 · 0 评论 -
VMR9实现放大缩小
编者:李国帅qq:9611153 微信lgs9611153时间:2012/05/03 若使用vmr9,测试了一下,需要使用无窗口模式,不能使用IVideoWindow接口,可以直接使用SetVideoPosition方法。// VMR9 Headers#include <d3d9.h>#include <streams.h>#include <strmif.h>#include <control.h>#include <..原创 2021-02-15 12:48:22 · 283 阅读 · 0 评论 -
ffmpeg.exe详细中文参数和使用例子
编者:李国帅qq:9611153 微信lgs9611153时间:2013-6 参数说明通用选项-formats 输出所有可用格式-f fmt 指定格式(音频或视频格式)-i filename 指定输入文件名,在linux下当然也能指定:0.0(屏幕录制)或摄像头-y 覆盖已有文件-t duration 记录时长为t-fs limit_size 设置文件大小上限-ss tim...原创 2021-02-15 12:04:15 · 1075 阅读 · 0 评论 -
WebView中点击全屏时的视频图像变形问题
编者:李国帅qq:9611153 微信lgs9611153时间:2021/1/14 背景:在android10中,打开h5页面,页面中有video视频元素,使用系统自身的全屏功能,发现打开后视频被拉伸。 如果手机设置为纵屏,而视频为横屏拍摄,就会出现视频变窄变长,内容变形。而这种情况只出现在android10中。解决过程: 刚开始不知道方法,因为是Android调用的问题,于是把所有功能都理了一遍,发现并无疏漏。 使用的方法也...原创 2021-02-12 15:25:07 · 1219 阅读 · 2 评论 -
加载OpenGL出现 error C2381: “exit” : 重定义
编者:李国帅qq:9611153 微信lgs9611153时间:2013/11/29 背景原因:以前开发视频播放的时候,遇到这样的问题:使用vc加载OpenGl的时候,出现error C2381: “exit” : 重定义;__declspec(noreturn) 不同 编译OpenGL Red Book 的例子时出现错误,stdlib.h(406) : error C2381: “exit”: 重定义;__declspec(nore...原创 2021-02-10 17:57:00 · 461 阅读 · 0 评论 -
如何对萤石云视频解码
编者:李国帅qq:9611153 微信lgs9611153时间:2021-2-8 背景原因:遇到了一个问题,需要把萤石云视频流作为自定义流嵌入到腾讯音视频trtc,不过从海康设备获取的流需要解码为yuv数据,但是萤石云开发包没有暴漏解码库,如何做呢?解决办法:在android版本的萤石云sdk(CH-HCNetSDK)中,可以直接调用PlayerSDK.jar的播放解码函数进行解码,解码后直接转为YV12丢给trtc就可以了。 那么ios(EZOpensdk_i...原创 2021-02-08 11:59:56 · 3422 阅读 · 0 评论 -
网络播放丢包及缓冲的漫谈
编者:李国帅qq:9611153 微信lgs9611153时间:2020-6-27 14:00背景原因:(纪念曾在2008~2015年间从事播放时开发的岁月)媒体播放会占用大量的cpu和内存资源。播放少量几路视频对于一般的pc机自然毫无障碍,但是如果想要播放几十路上百路视频那就有点强人所难了。不过,也不是没有变通的方法,让集成播放器根据计算机的能力决定显示的路数。如果资源分配不足,就会出现许多问题。比如:如果cpu不够,程序会出现卡顿;但是如果内存处理不当,就会直接导致程..原创 2020-06-27 14:56:26 · 228 阅读 · 0 评论 -
directshow中FillBuffer获取不到帧如何做
编者:李国帅qq:9611153 微信lgs9611153时间:2012-7-31背景原因:以前在开发directshow filter的时候,遇到一个问题,如果接收filter的fillbuffer函数没有收到数据帧的时候,会出现空跑的问题,造成cpu升高,于是查阅了一些资料。基本上也就几个方法:使用sleep等待、使用重复帧,使用空白黑帧。以下是一个找到的资料,希望对一些人有用。相关内容:If you look at the docs for FillBuffer..原创 2020-06-14 17:53:41 · 466 阅读 · 0 评论 -
把一帧RGB数据写入DirectDraw的函数
编者:李国帅qq:9611153 微信lgs9611153时间:2010背景原因:早先做了很久的视频显示,最早是DirectDraw,用到了里面的数据显示,找出一些函数出来,说不定会有人用到。问题描述及期望效果:数据从摄像头或者屏幕中获取,刚开始时压缩格式的,经过解码之后变成了一帧帧yuv格式的图像,如果要显示或者编辑,可能还是转为RGB比较方便。拿到RGB之后又需要显示到屏幕,如果使用DirectDraw绘制,那么就需要加入帧序列。下面的函数就是把rgb帧绘制到显示...原创 2020-06-06 11:25:38 · 256 阅读 · 0 评论 -
使用ffmpeg对录像照片文件简单批量瘦身
使用ffmpeg对录像照片文件简单批量瘦身编者:李国帅qq:9611153 微信lgs9611153时间:2019/11/28背景原因:1、拥有太多的影视文件随着手机的普及,人们在生活中拍摄越来越多的视频,照片,特别是小孩的成长照片。2、有些文件很鸡肋但是总有一些视频和照片不是很重要也有些模糊不清,但又不舍得丢弃。3、这些鸡肋文件可能很占用空间现在的手机分辨...原创 2019-11-28 12:14:32 · 843 阅读 · 0 评论 -
使用EnumDisplaySettings获取屏幕颜色数
使用EnumDisplaySettings获取屏幕颜色数编者:李国帅qq:9611153 微信lgs9611153时间:2008/10背景原因:判断当前屏幕的颜色数,因为远程桌面播放视频时,将播放格式限定为只能是16位色。 所需资源:VC 解决方案: int m_nBitsPerPel; //获得系统颜色数 in...原创 2019-01-24 17:38:27 · 881 阅读 · 0 评论 -
因质量控制导致回放录像过快的原因分析
编者:李国帅qq:9611153 微信lgs9611153时间:2014/2/26 13:19:55背景原因:数年前资料,使用directshow播放录像文件,发生过快现象。其中一个原因是由质量控制引起的。 问题分析: 如果快速播放文件的话,也不能正常显示视频。远程回放的时候快放现象,实际播放的时间比想要播放的时间短很多。不能使用sleep暂停播放,那样的话...原创 2018-12-05 16:38:42 · 1277 阅读 · 0 评论 -
播放器接收缓冲区的设计思路
编者:李国帅qq:9611153 微信lgs9611153时间:2013-2-28 8:39:15背景原因:旧时文档,当时编写播放器时的设计思路 设计思路: 1、使用大块的内存,然后使用环形存储,以前使用过 申请8M内存 添加不同大小的数据帧,比如1K,5K等等,每次写入一帧读取一帧。...原创 2018-12-05 16:17:50 · 611 阅读 · 0 评论 -
调用覆盖表面( Overlay Surfaces)的方法
编者:李国帅qq:9611153 微信lgs9611153时间:2012.5.10背景原因:覆盖表面是具有特殊硬件支持能力的表面,就像一张透明纸贴在主表面,改变看上去的画面。以前的一个提取代码,可参考理解。源码: // For create overlay surface LPDIRECTDRAW7 m_lpDD; LPDIRECTDRAWSURFACE...原创 2018-12-05 14:58:54 · 500 阅读 · 0 评论 -
使用directshow播放文件并监听事件的简单例子
编者:李国帅qq:9611153 微信lgs9611153时间:2010/8/24背景原因:使用directShow进行文件播放,并监听事件。入门例子播放Some events are handled silently by the Filter Graph Manager, without the application being notified. Other eve...原创 2018-12-05 10:21:55 · 177 阅读 · 0 评论 -
如何在媒体文件存储帧数据
编者:李国帅qq:9611153 微信lgs9611153时间:2012/7/4 15:52:16介绍:因为一个媒体文件不一定包含一种流类型可能包含视频、音频、字幕,甚至多路视频,多路音频(多声道),双字幕。所以必要对帧进行分组, 而不仅仅是因为存在关键帧和非关键帧的问题。 文件内容:文件头(256字节)+ 帧组1(配置帧组)----帧组2-...原创 2018-12-04 16:58:54 · 238 阅读 · 0 评论 -
视频分辨率QCIF、CIF、2CIF、4CIF,D1~D5
李国帅编辑于2009年内容从网络收集480i 480P 1080i 720p 1080pQCIF全称Quarter common intermediate format。QCIF是常用的标准化图像格式。在H.323协议簇中,规定了视频采集设备的标准采集分辨率。QCIF = 176×144像素。CIF是常用的标准化图像格式(Common Intermediate Format)。在H.323协议簇中原创 2017-12-21 11:50:14 · 2053 阅读 · 0 评论 -
asf文件中嵌入信息
asf文件中嵌入信息编者:李国帅qq:9611153 微信lgs9611153时间:2008-9-23 8:58背景原因:以前处理过asf,讲一下两个印象深刻的点:在asf头文件中添加配置信息在每一帧的STAT_CHUNK段中添加告警信息。 视频格式编码介绍:http://ffmpeg.sourceforge.net/links.php ffmpeg的专...原创 2019-01-21 16:47:17 · 231 阅读 · 0 评论 -
FillBuffer中在无数据时如何设置时间
FillBuffer中在无数据时如何设置时间编者:李国帅qq:9611153 微信lgs9611153时间:2012/12/24 14:17:17背景原因:描述:FillBuffer中在无数据时进行时间设置的错误。启示:有时候,不要太想当然,编码需要细心点。问题相关:描述了在使用directshow filter的时候,填充播放缓冲时,需要注意FillBuf...原创 2019-01-21 17:09:45 · 364 阅读 · 0 评论 -
DirectDraw播放中BLT failed与Lock失败问题
DirectDraw播放中BLT failed与Lock失败问题编者:李国帅qq:9611153 微信lgs9611153时间:2009-10-13 03:07下午背景原因:这是一个曾经遇到的播放问题,并不会造成严重问题。发生在win32的年代,一个曾经的记忆。 所需资源:VC,DirectDraw问题描述:在其它的机器上出现了以下错误,奇怪的现象(1)...原创 2019-01-28 11:39:18 · 788 阅读 · 0 评论 -
获取ddsd.lPitch
获取ddsd.lPitch编者:李国帅qq:9611153 微信lgs9611153时间:2009-12-11 04:58下午 所需资源:Vc DirectDraw 从DirectDraw获取lPitch: int GetSurfacelPitch(LPDIRECTDRAWSURFACE7 lpddsBack); int CDisplayHandl...原创 2019-01-28 16:00:38 · 453 阅读 · 0 评论 -
backsurface->Lock()失败导致无法播放
backsurface->Lock()失败导致无法播放编者:李国帅qq:9611153 微信lgs9611153时间:2009-12-11 04:58下午问题相关:有一个现象难以修改,(播放方案中存在多个播放器)一旦播放器在某个地方发生backsurface被锁定,所有的播放器全都调用backsurface->Lock()失败,这个播放方案没有一个播放器能够播放。...原创 2019-01-28 16:01:56 · 360 阅读 · 0 评论 -
播放器中使用共享内存进行数据缓冲
播放器中使用共享内存进行数据缓冲编者:李国帅qq:9611153 微信lgs9611153时间:2009-06-18背景原因:这是一个很久之前的设计,今天拿出来,整理个图形。使用rtsp进行接收,使用ffmpeg进行解码,使用directdraw进行显示,使用asf进行保存。实时播放数据流程:可能影响播放的因素: rtsp重连 ...原创 2019-01-28 16:46:19 · 421 阅读 · 0 评论 -
获取directshow中的播放事件IMediaEvent
获取directshow中的播放事件IMediaEvent编者:李国帅qq:9611153 微信lgs9611153时间:2013/2/16背景原因:使用简单的代码,编写一个播放器,莫过于使用directshow直接播放了,这里讲一下在directshow的graph中添加事件处理的方法。 问题相关:首先看一下directshow经典例程,经典的步骤:如...原创 2019-02-19 18:27:23 · 716 阅读 · 0 评论 -
分析使用mediarecord采集的实时流格式
分析使用mediarecord采集的实时流格式编者:李国帅qq:9611153 微信lgs9611153时间:2013-7-13背景原因:对使用android自身的录像接口采集的实时流进行远程播放,需要写一个专门的播放程序对流进行适当处理才能进行播放。差异说明:采集mediarecord实时流传输时,和3gp或者mp4文件格式不同,因为实时流中每一帧的第一个4字节...原创 2019-03-05 11:27:27 · 816 阅读 · 0 评论 -
浏览器针对Jfif1.01格式的兼容性问题引发的问题
浏览器针对Jfif1.01格式的兼容性问题引发的问题编者:李国帅qq:9611153 微信lgs9611153时间:2019/8/13调试问题有时候就像是在破案,曲曲折折的也不一定能找到答案。问题 腾讯tim的android端拍照发送Jpg图片,然后使用im的web端(Google浏览器)查看,缩略图可显示,放大图不可显示。解决流程...原创 2019-08-13 18:46:41 · 703 阅读 · 0 评论 -
正确认识MPEG-4与H.264产品
2009年 网络转载(转载这篇文章的目的,是想说:技术的发展是相对的,任何技术都会有优缺点,不是专业人员,用用就好,泛泛而谈的话可以用来忽悠和包装,但对于专业人员来说只能算是肤浅的说法。真正的技术人员应该始终保持谦虚学习的态度。----2017-12-21李国帅)H.264视频编解码标准具有一定的先进性是公认的,但是它并不是首选的视频编码器标准,特别是作为监控产品,因为它还带有一些技术上的缺陷。原创 2017-12-21 11:32:12 · 604 阅读 · 0 评论