自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (7)
  • 收藏
  • 关注

原创 Cesium使用视频创建自定义纹理

本文参考了cesium的自定义texture实现,在此基础上做了修改,引入html5的视频进行渲染,实测比使用视频作为材质效率略有优化,且更具灵活性,利于对视频进行二次处理,废话不多说,代码如下:var PrimitiveTexture= ( function () { var vertexShader; var fragmentShader; var materialShad...

2020-04-23 13:20:53 3029

原创 rtsp流转为fmp4并由WebSocket网关转发,及对应js播放器

web端是无法直接播放rtsp流的,目前常用的解决方案是如jsffmpeg、flv.js等。这些方案都是要推送流到服务端,之后才能在web上播放视频,相对比较麻烦。我采用websocket结合mse的方式,实现了一个websocket网关,及其对应的js播放器,在这里做下说明,具体代码参考github上我的源码。这套方案的原理是,ws网关在拉到rtsp流后,取得mime,将其发送给web端,然...

2020-04-14 14:12:29 3846 8

原创 ffmpeg实现动态调整字幕和水印位置

紧接上一篇文章,字幕内容的修改可以通过av_opt_set修改AVFilterContext的priv来实现,那么字幕和水印的位置是否也可以这样呢?打开vf_drawtext.c和vf_overlayer.c这两个文件,发现它们都有名为"x"和"y"的设置,然而当我采用av_opt_set将这两个值设置之后,图像位置却没有发生改变,仔细阅读源码,可以看到这两个滤镜都有这样几个变量:cha...

2019-01-15 14:12:14 7550 3

原创 ffmpeg实现动态调整字幕内容

最近在做一个项目,需要在视频上叠加图片和文字,而且是要能根据外部接口调整文字的内容,以及控制图片的位置。水印和字幕当然还是用ffmpeg的滤镜来实现了,变换文字内容也可以用drawtext的textfile来实现,但涉及到实时控制显示位置,就干脆一起使用改变滤镜参数的方法实现了。这篇文章里仅谈谈怎么修改字幕的文字内容,动态调整字幕和水印位置需要修改ffmpeg源码,我会在下一篇文章中讲如何实现。...

2019-01-15 13:46:24 6478 3

原创 ffmpeg源码修改以适应海康摄像头rtsp流的aac音频

最近在测试通过rtsp采集海康的摄像头,以前海康的摄像头采用g711音频,没出现什么问题,这次的设备升级成了aac音频,结果使用ffmpeg出现音频格式不能识别的问题,报什么Audio object type 0的错误,查看发现是解码器的objecttype成了0造成的,于是查看源码。跟踪发现打开rtsp时发来的sdp信息中音频的信息如下:a=rtpmap:104 mpeg4-generi

2015-07-14 15:01:57 7929 3

原创 ffmpeg修改flv打包aac声道部分

ffmpeg默认的flv打包输出aac的音频是44100的采样率、双声道、16位数据格式,但flv格式是可以支持其它参数的,因此需要修改flvenc.c在get_audio_flags函数中,有这段代码:if (enc->codec_id == AV_CODEC_ID_AAC) // specs force these parameters        return FLV_CO

2015-04-18 14:55:30 2820

原创 ffmpeg修改源码添加flv对pcm的打包支持

flv支持的音频包含pcm_mulaw和pcm_alaw但使用ffmpeg打包输出的文件使用解码器打开发现无法真确得到音频的格式信息,分析源码发现除了AAC、H264、MPEG4之外,其余的格式信息未被写入到流中,修改flvenc.c,找到flv_write_header函数,在函数最后写格式信息部分修改如下:    for (i = 0; i nb_streams; i++) {   

2015-04-18 14:54:32 2807

原创 ffmpeg添加MP4的pcm音频支持

ffmpeg中对MP4的打包处理是在movenc.c中,在实际打包过程中发现除了mov类型外,其它类型如vob等均无法生成音频的声道信息,经过分析发现在mov_write_audio_tag函数的最后有如下代码 if (track->mode == MODE_MOV && track->enc->codec_type == AVMEDIA_TYPE_AUDIO)        mov_

2015-04-18 14:54:01 9470 10

原创 ffmpeg添加mpeg ts对pcm的支持

在mpegtsenc.c的mpegts_write_pmt函数中,switch(st->codec->codec_id)的case中,添加如下代码            case AV_CODEC_ID_PCM_MULAW:            stream_type = 0x91;            break;            case AV_CODEC_ID_

2015-04-18 14:51:39 6689 3

原创 ffmpeg添加mpeg ps流的pcm的编码支持

ffmpeg的mpegenc.c中,缺少了psm头的写入,而ps流的封包应当是ps,即pes在写入sys头之后写pes之前应当先写入psm头,因此mpegenc.c中需要增加写入psm头的函数,如下:static uint8_t get_stream_type(int stream_codec_id){    uint8_t res = 0;

2015-04-18 14:51:29 3420 1

原创 ffmpeg添加mpeg ps流的pcm的解码支持

ffmpeg原本不支持mpeg ps流,原因有两个。首先在编码时,ffmpeg没有在流中写入psm头;其次,在解码时,只在读文件头的时候判断了流的类型,而ps流中,流类型是在psm头中的,这样ffmpeg会读不到流类型。    要解决读不到媒体类型的问题,需要在mpeg.c函数中mpegps_read_packet函数中做修改,该函数是读取ps包的,如果每个ps包都有psm头,那么到此时流类型

2015-04-18 14:48:12 5733 5

原创 mingw下ffmpeg编译添加x265支持

最近在编译ffmpeg时,发现x265的一个

2014-08-11 16:26:00 3575 1

原创 linux下odbc的安装配置和wxODBC的开发

p { margin-bottom: 0.21cm; }安装linux下的ODBC有两种:unixODBC和iodbc,由于wxGTK提供的是对iodbc的支持,因此在安装wxGTK前需要先安装iodbc。在后面安装freetds时,依据环境和依赖关系可能会将unixODBC也装上,iodbc和unixODBC修改的ODBC配置文件都是/etc/odbc.ini和/etc/odbcinst.ini,这两个都是ODBC驱动

2011-03-15 15:12:00 4501 1

原创 windows下codeblocks的wxsmith所需wxGTK的安装

<br />windows下的codeblocks安装完后已经有mingw,但没有wxGTK,还不能使用codeblocks里的wxsmith,因此需要安装wxGTK<br />首先修改windows的环境变量,增加以下内容<br />PATH : MinGW安装目录/bin; <br />LIBRARY_PATH :MinGW安装目录/lib<br />C_INCLUDE_PATH :MinGW安装目录/include<br />CPLUS_INCLUDE_PATH :MinGW安装目录/include/

2010-09-02 16:00:00 1859

原创 linux下codeblocks及wxGTK安装

<br />一般情况下,codeblocks是可以直接使用yum或RPM等安装方式的,不过在有些特殊情况下无法使用yum,RPM安装的依赖关系难以解决,这是就得用编译安装了。<br />codeblocks安装前必须安装wxGTK,我在这里用的版本是2.8.11,不过一般来说2.8的版本就可以了,codeblocks的版本是8.02,系统是红帽子4.7<br />将下载的wxGTK-2.8.1.tar.bz2 拷贝到/tmp<br />然后执行以下命令<br />tar jxf wxGTK-2.8.1.ta

2010-09-02 13:35:00 8858 3

原创 使用数组实现oralce批量数据提交

 数组及对象定义如下:create or replace type t_test as object (value number(9));create or replace type t_testarr as table of  t_test;存储过程:procedure pro_test(testval in t_testarr )PL/SQL develop下:decl

2009-11-16 16:53:00 966

原创 ORACLE事务的原子性

    ORACLE的事务与SQL server以及sybase有很大的不同,举个例子,假如表a有以下记录:field11304    其中对field1字段的约束条件是field1>0,那么当我们执行update a set field1=field1-1这条SQL语句时,将会出现一个错误,因为其中的第三条记录的field1等于0,减去1之后就会违反约束条件。    那么在SQL server或

2007-10-21 10:12:00 4095

原创 oracle的包、用户数据类型与内存表的实现

        最近在做的一个项目中,需要从UDP接收数据,数据记录了同样的点不同时间的值,然后每分钟定时将接收到的值更新到数据库中,但是接收数据的时间虽然在一分钟左右,但时间并不准确,如果UDP没有接收到数据,也必须将上次收到的数据再次提交给数据库,因此将接收数据和定时更新分开,接收数据和提交数据互不干涉。然而这么做问题来了,整个系统是建立在ORACLE库上的,而ORACLE是没有内存表的,如果

2007-10-12 16:24:00 1141

原创 ORACLE的多版本与读一致性

  先来看看这段代码:  while s in (select * from table1) loop    insert into table1 values(s.field1,s.field2,s.field3,s.field4,s.field5);  end loop;  如果是SQL server的开发人员,看到这段代码,肯定会摇头:这段代码有问题,这样递归插入,会一直到表爆掉为止;而OR

2007-10-10 15:35:00 2492

原创 ORACLE绑定变量的使用

        在ORACLE中,使用绑定变量,可以降低硬解析,通常可以提高系统的性能(注意,是通常,不是任何情况下)。        以表tabletest为例,我们来看看如何使用绑定变量,tabletest的表结构为       field1 number(10)       field2 number(10)       field3 number(10)       f

2007-10-09 13:36:00 1450

原创 QT4 designer生成的头文件的优化

        前面的文章中举了一个用QT Designer作QT程序界面设计的例子,但使用UIC转出来的头文件代码比较凌乱,看起来太累,如果做的是稍复杂一点的界面程序,放一段时间自己再来看,怕是要花不少时间,最好是对这个头文件做一些优化。下面以上篇文章的例子来说明一下如何优化。       首先看看main.cpp中调用头文件中设计好的窗口的过程:        QWidget w;  

2007-10-06 20:35:00 1757

原创 QT4designer的使用

        直接使用代码来直接编写GUI无疑是非常痛苦的,好在QT提供了界面开发工具:QTdesigner。在QT的安装目录下的bin目录中,找到designer.exe,运行后就可以设计一个你所需要的QT程序界面。       选择菜单file->new form,就会出现一个选择要创建表单类型的对话框,选择widget,然后点create按钮,就会出现一个设计状态的表单。在左边的wid

2007-10-03 20:43:00 2566

原创 windows下Dev-Cpp与QT4开发环境的搭建

        我下载的Dev-Cpp版本为4.9.9.2,安装目录为C:/Dev-Cpp,安装过程中按提示选择即可。QT版本为4.3.1,下载的文件为qt-win-opensource-src-4.3.1.zip,也就是需要编译的版本,解压到C:/QT/4.3.1。        在windows的环境变量中增加如下变量        PATH=C:/qt/4.3.1/bin;C:/De

2007-10-01 22:29:00 2717 2

大华ipc的http接口

大华ipc设备的http接口文档,可参考此文档使用http协议控制大华ipc

2018-12-05

exosp2 5.0

exosip2,5.0版源码, 可用于sip协议、gb28181的开发

2018-09-03

libosip2 5.0

5.0版的osip2源码, 可用于sip协议的开发

2018-09-03

onvif协议鉴权、云台控制demo,codeblock工程

基于gsoap2.8.70,onvif协议的鉴权及云台操作,不包含设备发现

2018-09-03

ios播放器示例

ios下的播放器示例程序,如何使用ios的播放类播放视频

2012-12-25

sockets4laz

在winXP下安装正常,linux下不正常

2008-03-07

VBScript安装程序

用于微软公司系统的VBS语言

2007-12-11

空空如也

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

TA关注的人

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