- 博客(17)
- 资源 (9)
- 收藏
- 关注
原创 Nginx的请求处理流程之二:handler发送包头、包体
Nginx的请求处理流程之二:handler发送包头、包体 本文是解析自己写的module的handler中调用了发送包头、包体函数后,nginx做了哪些工作。 参考《Nginx的请求处理流程之一:分派handler》中的框图。简要的说,就是调用了filters模块的链表,对handler生成的包头、包体内容最后进行加工,然后调用writev()来发送。
2016-09-29 11:51:05 1027
原创 SRS-HLS服务的部署
SRS-HLS服务的部署直播服务器simple-rtmp-server支持rtmp和hls两种流的分发。对于rtmp的配置很简单,默认configure进行编译安装后,执行./objs/srs -c conf/srs.conf就行了。但是配置hls就比较麻烦了,要分为使用nginx作为hls分发服务,还是使用自带http服务器来分发。而且要根据本机http端口的占用情况来修
2016-09-29 08:55:10 4051
原创 Nginx的请求处理流程之一:分派handler
以下只是自己学习nginx,研究其收发流程时做的笔录。以后可能还会补充。1、ngx_http_process_request()开始处理请求,这里设置请求的回调函数:c->read->handler = ngx_http_request_handler; //在一个流程中,读写的handler是固定的。c->write->handler = ngx_http_request
2016-09-23 17:19:40 709
原创 用ffmpeg处理UDP时Circular buffer overrun错误
用ffmpeg实现udp流的中转,命令如下:ffmpeg -re -i udp://192.168.1.2:5000 -acodec copy -vcodec copy -f mpegts -muxrate 4200k udp://192.168.1.136:5004运行一会儿,会提示如下错误并停止:Circular buffer overrun. To avoid, incr
2016-09-23 17:17:00 2979
原创 TS流码率计算
1、PCR概念与解析 PCR(program clock reference),即节目时钟基准。每一个节目都有一个独立的PCR字段。 PCR有PCR-base和PCR-extension两部分,由42位码字组成。一部分以系统参考时钟(27MHz)的1/300(90kHz)为单位,称为PCR_base,共33bit;另一部分以系统参考时钟(27MHz)为单位,称为PCR_ex
2016-09-19 11:23:49 2926
原创 ffmpeg的编程笔记2 -帧数据处理流程解析
一、AVPacket的用法1、直接使用AVPacket packet;...av_read_frame(ifmt_ctx, &packet);...av_free_packet(&packet);2、使用指针,则麻烦些://AVPacket *packet=(AVPacket *)av_malloc(sizeof(AVPacket));//av_init
2016-09-16 21:25:07 484
原创 ffmpeg的编程笔记1 - 基本函数与流程
两年前自己的工作记录,没有整理,有些乱了。分两部分来记录下ffmpeg编程中基本的东西。AVInputFormatAVOutputFormat一、初始化及常用函数、结构:av_register_all(); //注册所有的compiled muxers, demuxers and protocols.avformat_network_init
2016-09-16 21:20:20 335
原创 编译并运行Android下的x264
linux下编译x264如下:>./configure --enable-pic --enable-strip --enable-static --disable-opencl --prefix=./build>make>make install因为项目关系,自己实践了两种编译环境。一、linux下编译android x264的配置:./co
2016-09-16 21:15:41 575
原创 ffmpeg解封装后的帧处理(H.264,AAC)
一、H.264的处理1、分离某些封装格式(例如MP4/FLV/MKV等)中的H.264的时候,需要首先写入SPS和PPS,否则会导致分离出来的数据没有SPS、PPS而无法播放。这些信息存储在AVCodecContext的extradata里面。并且需要使用FFMPEG中的名为"h264_mp4toannexb"的bitstream filter 进行处理,然后使用处理后的extrada
2016-09-16 21:08:25 1261
原创 ffmpeg读取H264的sps、pps
sps、pps在avcC中,保存为:AVFormatContext->streams[H264Index]->codec->extradata1、读取代码 for(int i=0; inb_streams; i++) { AVCodecContext *codec = ifmt_ctx->streams
2016-09-16 21:04:16 1826
原创 Opus音频编码的使用约束
两年多以前做的记录了,估计现在很少用opus的了。1、采样率约束:输入信号的采样率(Hz),必须是8000、12000、16000、24000、或48000。OpusEncoder* opus_encoder_create(opus_int32 Fs, int channels, int application, int *error); 函数参数中的Fs就是采样率。
2016-09-13 14:40:08 3501
原创 linux下第三方库的交叉编译参数总结
linux下第三方库的交叉编译参数总结一、平台类别1、ios:--host=arm-apple-darwin--sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/--extra-cflags='-arc
2016-09-13 14:34:15 877
原创 GIt笔记3:Git远程仓库与多人协作
一、创建远程仓库:从创建目录开始的系列命令:$ cd mypath$ echo "# ffplayer" >> README.md$ git init$ git add README.md$ git commit -m "first commit"$ git remote add origin git@github.com:dengjoe/ffplayer.gi
2016-09-13 14:27:42 172
原创 Git笔记2:分支管理
一、分支操作1、创建分支并切换到分支:$ git checkout -b dev //从master创建dev分支并切换$ git checkout -b myfeature dev //从dev创建myfeature分支并切换$ git checkout -b myfeature --track origin/xxx //从远程分支创建myfeature分
2016-09-13 14:26:49 114
原创 Git笔记1:基本操作
1、安装Git安装完成后,还需要最后一步设置,在命令行输入:$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"2、创建Git版本库。又名仓库,英文名repository创建一个目录,进入该目录,执行命令:
2016-09-13 14:25:53 101
原创 ffmpeg中的时间单位转换
一、ffmpeg中的时间单位1、AV_TIME_BASE ffmpeg中的内部计时单位(时间基),ffmepg中的所有时间都是于它为一个单位,比如AVStream中的duration即以为着这个流的长度为duration个AV_TIME_BASE。AV_TIME_BASE定义为:#define AV_TIME_BASE 10000002、AV_TIME_
2016-09-13 14:14:22 711 1
原创 ffmpeg常用命令
一、ffmpeg语法ffmpeg使用语法: ffmpeg [[options][`-i' input_file]]... {[options] output_file}...如果没有输入文件,那么视音频捕捉就会起作用。常用选项:-h 帮助-i filename 输入文件-y 覆盖输出文件-vcodec 指定视频编码器,如libx26
2016-09-13 13:03:12 919
HLS标准的文档整理
2015-04-29
C++0x标准概述(Overview of the New C++)
2011-07-18
H.264-SVC英文文档
2009-11-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人