自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sxc1989的博客

音视频开发

  • 博客(26)
  • 收藏
  • 关注

原创 利用ffmpeg提取与播放pcm

提取ffmpeg -i xxxx.mp4 -codec:a pcm_f32le -ar 48000 -ac 2 -f f32le output.pcm-ar: 指定采样率;-ac: 指定声道数;-f f32le: 表示每个采样点用32位浮点数来表示(le表示小端,be表示大端)播放ffplay -ar 48000 -channels 2 -f f32le -i output.p...

2018-12-29 17:48:34 6778 1

原创 利用ffmpeg提取与播放yuv

ffmpeg -i xxxxx.mp4 -s 960x540 -pix_fmt yuv420p yyyy.yuv其中xxxxx.mp4为原视频文件,yyyy.yuv为提取的yuv数据;通过-s来设置yuv数据的分辨率;通过-pix_fmt来设置yuv数据的具体格式;如:yuv420p,yuv422p,.....播放ffplay -f rawvideo -video_size...

2018-12-29 17:30:54 5754

原创 webrtc测试时https的问题

在chorme中需要在https的情况下才能使用webrtc,在没有正式证书情况下, 可采用以下几种方式。在本地测试,但局限性太大;使用openssl生成证书,使用时会提示是不安全链接, 点击继续即可;添加chrome启动参数,使用方式如下:mac用命令行启动chrome/Applications/Google\ Chrome.app/Contents/MacOS/...

2018-07-30 20:13:35 8474 2

原创 gcc与nasm联合编译

最近碰到c与asm混合的代码,由于之前没有相关的经验,编译起来非常费力。这里将遇到的一些坑总结一下,再mac平台下使用gcc和nasm编译。一、相关代码c代码如下:#include <stdio.h>int add(int a, int b);int main(int argc, char **argv){ printf("%d\n", add(1, ...

2018-06-09 22:58:12 4915 2

原创 mac下google-cloud-sdk的使用

一、安装安装python27;下载google-cloud-sdk,https://cloud.google.com/sdk/docs/;下载后进入google-cloud-sdk文件夹;运行./install.sh 来安装Cloud SDK tools;期间可能遇到如下提示: Enter path to an rc file to update, or leave blank to...

2018-05-21 12:24:30 3262

原创 UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte

在tensorflow中使用tf.gfile.FastGFile读取图片:tf.gfile.FastGFile("1.png", "r").read()时出现如下错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte将”r”改成”rb”即可。...

2018-05-13 17:56:29 3315

原创 janus-gateway在mac下的安装使用

一、编译jauns-gateway下载,git clone https://github.com/meetecho/janus-gateway;安装相关的依赖brew install jansson libnice openssl srtp libusrsctp libmicrohttpd libwebsockets cmake rabbitmq-c sofia-sip opus...

2018-04-06 19:26:45 1602

原创 关于adapter.js

一、由来adapter.js自2012年底或者2013年初WebRTC早期的时候就已经出现了。它是一个非常小的项目,当时还没有150行。主要功能是隐藏像webkitRTCPeerConnection和mozRTCPeerConnection这样的前缀差异,并提供函数将MediaStream附加到HTML的或元素。随着各个游览器对webrtc的支持, adapter.js用来屏蔽各个游览器之间的...

2018-03-26 21:30:53 10674 7

原创 android中pcm数据的播放(AudioTrack)

简介在android中java层提供了SoundPool、MediaPlayer、AudioTrack三种音频播放方式,其中SoundPool适合短促且对反应速度比较高的情况(游戏音效或按键声等),MediaPlayer适合比较长且时间要求不高的情况,比如播放mp3、aac等文件,而AudioTrack可播放解码后pcm的裸流。使用方式1. 先计算最小缓冲区大小int bufferSize = Au

2017-05-20 15:12:48 9367

原创 Allowed memory size of 149946368 bytes exhausted (tried to allocate 32640 bytes)

问题:PHP Fatal error: Allowed memory size of 149946368 bytes exhausted (tried to allocate 32640 bytes)原因:php限制了该脚本的能申请到的内存;解决办法:修改php.ini文件中memory_limit, 并重启php-fpm;在脚本中添加ini_set(‘memory_limit’, ‘-1’

2017-04-26 15:28:57 746

原创 利用“member initialization list”初始化类成员

原因成员变量的初始化工作在进入构造函数之前;举例// 错误做法class ABEntry{public: ABEntry(const std::string& name){ name_ = name;//这里是赋值操作,name_在进入构造函数之前就被初始化 }private: std::string name_; }// 正确做法class ABEntry{

2017-04-09 18:19:46 477

原创 opengl打开jpeg图片

opengl没有提供直接函数来打开jpeg、png之类的压缩图片, 目前可用的方法有:1. 调用第三方库打开图片,比如opencv等;2.直接利用系统提供的函数打开图片。对于写个demo之类的小程序,直接引入opencv显然是没有必要的,这里就介绍mac下如果读取jpeg的图片的方法。具体实现如下:unsigned char* readImageData(const char* file_name,

2017-03-19 19:05:08 2957

原创 《程序员的自我修养》读书笔记-编译链接过程

准备对于入门的hello world程序, 如下所示:#include <stdio.h>int main() { printf("hello world\n"); return 0; }在IDE中仅需点击一下运行既可看到程序的运行结果,而如果使用GCC编译,也非常简单,只需gcc hello.c即可生成目标文件a.out, 但其中隐藏了编译链接的基本步骤,分别为:预处理、

2017-03-19 19:00:48 433

原创 glut中定时器的使用

注册定时器注册一个定时器的回调函数,原型是为:glutTimerFunc(unsigned int millis, void (*func)(int value), int value);其中milllis为多久之后调用回调函数,单位为毫秒;func为回调函数;value为定时器标识;回调函数原型void OnTimer(int value);其中value用户区分哪个定时器,其值为glutTime

2017-03-15 21:59:44 710

原创 opengl 编译错误汇总

备注:系统都是Mac OSX 1. Segmentation fault at glGenVertexArrays(1, &vaoHandle);解决办法:在glewInit();之前加上glewExperimental = GL_TRUE; 来源:Segmentation fault at glGenVertexArrays2. Invalid storage qualifiers ‘in’ in

2017-03-15 19:55:24 1068

原创 mac下GLTools的安装

在学习《OpenGL超级宝典》时, 其中的例子用到了GLTools库,需要自行安装。MAC下GLTools的安装方法如下: 1. git clone https://github.com/HazimGazov/GLTools 2. cd build 3. cmake .. 4. make 5. sudo make install备注如果cmake时提示GLEW_LIBRARY找不到, 则需

2017-03-06 18:08:57 3527

原创 rtmp握手过程

rtmp通信以握手开始,即客户端与服务端相互发消息块。其中客户端发送的消息块被指定为C0,C1,C2, 服务端发送的消息块指定为S1,S2,S3。握手顺序客户端主动发送C0,C1;客户端必须等待S1到达才能发送C2;必须等待S2到达才能发送其他数据;服务端必须等待C0到达才能发送S0和S1;必须等待C1到达才能发送S2;必须等待C2到达才能发送其他数据;C0和S0格式长度:1字节C0表示客

2017-03-04 21:18:00 1322

原创 QT报错Xcode not set up properly

QT报错Xcode not set up properly

2017-02-17 22:27:26 405

原创 sdl播放pcm文件

参考:最简单的视音频播放示例9:SDL2播放PCM用到的数据结构和函数1. SDL_Initint SDLCALL SDL_Init(Uint32 flags) 初始化SDL,播放音频时flags为SDL_INIT_AUDIO | SDL_INIT_TIMER; 2. SDL_AudioSpec 类型 字段 备注 int freq 音频采样率 SDL_AudioFor

2017-02-13 21:54:55 433

原创 map的[]操作

操作符的实现T& operator[](const key_type& k){ return (*(insert(value_type(k, T()))).first)).second;}value_typetypedef pair<const Key, T> value_type;所以value_type(k, T())就是生成一个pair对象,键为k,值为T();insertpair<

2017-02-13 09:43:14 1121

原创 sdl库使用时遇到的问题

1. Undefined symbols for architecture x86_64 “_main”问题在使用sdl库的时遇到如下问题: Undefined symbols for architecture x86_64: "_main", referenced from: __start in crt1.o (maybe you meant: _SDL_ma

2017-02-13 09:38:45 1317

原创 nginx_rtmp_module初体验

nginx_rtmp_module初体验

2017-02-11 11:55:45 1064

原创 avpicture_fill的实现

avpicture_fill的实现

2017-02-10 21:34:46 4163

原创 mp3转pcm

mp3转pcm

2017-02-10 14:01:43 7210 2

原创 nginx模块开发0(hello world)

nginx模块开发

2017-02-09 22:00:18 453

原创 av_lockmgr_register

av_lockmgr_register

2017-02-08 22:42:58 1992

空空如也

空空如也

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

TA关注的人

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