随笔分类 -  视频

ffmpeg音视频编解码,转码等
摘要:最近在研究CrtmpServer http部分,记录一些基本的流程,以备查阅。 首先,打开配置脚本CrtmpServer.lua ,确认脚本中有以下内容,如果没有需要加上。 在浏览器地址栏中输入http://127.0.0.1:8989/httpEchoProtocol/TestHttp,跟踪Crt 阅读全文
posted @ 2017-02-14 14:49 王纲 阅读(720) 评论(0) 推荐(0)
摘要:记录项目中用到一组x264快速编码参数配置,具体如下: param->i_frame_reference = 1; param->i_scenecut_threshold = 0; param->b_deblocking_filter = 0; param->b_cabac = 0; param-> 阅读全文
posted @ 2017-02-06 16:20 王纲 阅读(827) 评论(0) 推荐(0)
摘要:本文讲述windows 平台下ffmpeg如何利用intel media SDK 进行 h264硬编码(测试版本为3.2.2)。 ffmeg硬编编码的流程与软件编码流程相同,唯一不同的地方在初始化encoder。软件编码基本流程前文有 介绍,本文不再赘述。下面介绍硬编编码初始化encoder代码。 阅读全文
posted @ 2017-01-28 20:37 王纲 阅读(12147) 评论(2) 推荐(0)
摘要:ffmpeg H264编解码前面有文章介绍下,本文主要介绍一些参数配置。 编码: int InitEncoderCodec( int iWidth, int iHeight) { AVCodec * pH264Codec = avcodec_find_encoder(AV_CODEC_ID_H264 阅读全文
posted @ 2017-01-24 11:35 王纲 阅读(10774) 评论(0) 推荐(0)
摘要:最近做直播系统的朋友很多,正好前端时间也在做这一块,写片文章分享下开发心得,以为后用。 直播系统我将它分为前堆推流,后台服务,客户端播放三大部分。前端推流基于ffmpeg,后台服务 使用crtmp服务,播放端可以使用JWPlayer(网页端播放),也可以是CGplayer。 一.前端推流 推流可以采 阅读全文
posted @ 2017-01-22 16:17 王纲 阅读(4776) 评论(4) 推荐(0)
摘要:自己写的播放器播放有些文件出现问题,但ffplay播放都很正常,为方便调试,将ffplay.c编译成可执行文件。 一. 环境搭建 环境搭建前面已经有文章介绍,没有特殊的地方,不再赘述。 二.修改configure文件 默认的configure文件会check各种依赖,所有的依赖都存在时 才会enab 阅读全文
posted @ 2016-12-29 16:43 王纲 阅读(854) 评论(0) 推荐(0)
摘要:Windows系统下 vs2012编译ffmpeg 动态库 前面已经有文章讲述,本文将讲述如果编译生成ffmpeg静态库以方便 在vs2012下调用。 准备工作:安装MinGW环境,修改ffmpeg配置文件,这两步均与编译动态库相同,这里不再赘述。唯一不同的不同的 是配置命令,生成静态库的命令是: 阅读全文
posted @ 2016-12-21 21:40 王纲 阅读(2035) 评论(0) 推荐(0)
摘要:使用JWPlayer可以直接在网页上播放rtmp流,JWPlayer 相关文件可以在http://pan.baidu.com/s/1qXED6FU下载,本文主要讲述其使用方法。解开压缩包获得如下图所示文件。 图1 JWPlayer文件列表 修改index.html,修改部分的内容如下图所示: 图2  阅读全文
posted @ 2016-12-11 15:59 王纲 阅读(2205) 评论(0) 推荐(0)
摘要:文本主要讲述windows系统下如何利用ffmpeg获取摄像机流并推送到rtmp服务,命令的用法前文 中有讲到过,这次是通过代码来实现。实现该项功能的基本流程如下: 图1 ffmpeg推流流程图 较前面的文章的流程图而言,本流程图显的复杂些,稍微解释下: ffmpeg 打开摄像头跟打开普通的视频流方 阅读全文
posted @ 2016-12-05 11:20 王纲 阅读(6921) 评论(11) 推荐(0)
摘要:vs2015编译ffmpeg(版本3.0.2)引用外部库文件librtmp出现以下错误: rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 __imp__strtod rtmp.lib(rtmp.obj) : error LNK2001: 无法解析的外部符号 阅读全文
posted @ 2016-11-30 21:52 王纲 阅读(12006) 评论(2) 推荐(0)
摘要:利用vs2012编译ffmpeg出现以下错误: libavdevice/avdevice.c(38) : error C2059: 语法错误:“.” libavdevice/avdevice.c(40) : error C2059: 语法错误:“,” libavdevice/avdevice.c(4 阅读全文
posted @ 2016-11-30 20:26 王纲 阅读(1835) 评论(0) 推荐(0)
摘要:利用ffmepg推264流到rtmp服务端出现错误WriteN, RTMP send error 10053,具体如下图所示。 图1推流到rtmp服务错误 原因是视频流缺少SPS,PPS信息,加上这两个信息即可。 视频下载地址:http://www.chungen90.com/?list_53 De 阅读全文
posted @ 2016-11-20 17:14 王纲 阅读(7364) 评论(2) 推荐(1)
摘要:本来主要讲述如何利用ffmpeg将输入视频流通过转码的方式转成m3u8文件。如何通过http的方法将切边推送给客户端,不在本文中讲述。 输入视频流可以是rtsp流,也可以是http,还可以是文件等等。转码的基本流程如下图所示: 图1. 生产hls视频流 视频流解复用可以获得packet,对应的实现方 阅读全文
posted @ 2016-11-17 14:10 王纲 阅读(4780) 评论(0) 推荐(0)
摘要:1.保存文件: -i 后面接输入流, vcodec 后面视频编码方式,copy表示不重新编码。 -acodec 后面跟音频编码方式,libvo_aacenc 是增强型编码方式 。-f 后面跟封装格式也就是format mpegts表示ts流。 2. 按时间保存文件 -i 前面要加上-re,-表示按时 阅读全文
posted @ 2016-11-14 19:54 王纲 阅读(967) 评论(2) 推荐(0)
摘要:ffmpeg读取文件有两种方式:一种是直接读取,文件被迅速读完;一种是按时间戳读取。一般都是按时间戳读取文件, 命令行加入-re,表示按时间戳读取文件,在ffmpeg_opt.c 中可以看到re对应的option选项如下图所示. 图1 如何按时间戳读取文件,ffmepg.c可以看到具体的实现: 图2 阅读全文
posted @ 2016-11-12 14:53 王纲 阅读(6390) 评论(0) 推荐(0)
摘要:Crtmp Server接收rtmp音视频流,并实现音视频并发,可以作为直播后台的服务。整套代码量并不大,算是轻量级的服务。 花了些时间研究源码,现将研究的结果,记录下来,方便以后查阅。 先不从架构上分析,直接看代码。我是将crtmp运行在windows环境下,所以代码分析以windows参考。 c 阅读全文
posted @ 2016-10-11 11:51 王纲 阅读(771) 评论(0) 推荐(0)
摘要:最近在看crtmp源代码,看到timersmanager 模块时感觉很难理解,花了不少时间反复思考该模块 的逻辑,现在思考的结果记录下来,方便以后查阅。 构造函数中将处理时间方法传进来,将_lastTime赋值为当前时间,将当前slot Index设置为0,Slot指针 赋为空,slot数目赋为0。 阅读全文
posted @ 2016-09-20 18:02 王纲 阅读(334) 评论(0) 推荐(0)
摘要:很多朋友都会问到rtsp如何通过rtmp协议推送到服务端,正好前段时间开发了这个功能写在这里,和大家分享下。 首先我想说的是:ffmpeg可以实现这个功能。ffmpeg支持rtsp协议,也支持rtmp。在这个案例中rtsp是输入, rtmp是输出,ffmpeg实现了转码的功能。下面可出一个整体思路流 阅读全文
posted @ 2016-09-08 17:06 王纲 阅读(26052) 评论(27) 推荐(1)
摘要:视频数据传输在传输层可以选择TCP或者UDP,TCP面向连接,传输中断,发送端是知道的。TCP传输的好处是不丢包,坏处是网络不太好的情况下会越堵越严重。UDP非面向连接,发送端只管发送数据,接收端有没有接收到不管。UDP的好处应该是实时性,坏处显而易见:网络抖动大时数据会丢失严重,出现我们常说的花屏 阅读全文
posted @ 2016-08-12 15:53 王纲 阅读(4212) 评论(0) 推荐(0)
摘要:GB28181国检有一向内容是实时播放摄像机流,经过一番努力,搞定这个功能,现分享心得: 首先需要了解流程,说简答点就是视频流从哪里来到什么地方去,下图描述了视频流推流,转发的 基本过程:信令交互成功以后,摄像机(媒体流发送者)推送流到媒体服务器,媒体服务器在指定 的端口接收到视频流后,转发给流媒体 阅读全文
posted @ 2016-08-03 23:23 王纲 阅读(16541) 评论(9) 推荐(2)