视频处理
文章平均质量分 72
lifei092
工作是另一种生活,选择自己喜欢的工作,也是选择一种生活
展开
-
Gstreamer中元件四种状态
Gstreamer中,元件有四种状态,每种状态都有其特定的意义。这四种状态为:1)GST_STATE_NULL: 默认状态,该状态将会回收所有被该元件占用的资源。2)GST_STATE_READY: 准备状态,元件会得到所有所需的全局资源,这些全局资源将被通过该元件的数据流所使用。例如打开设备、分配缓存等。但在这种状态下,数据流仍未开始被处 理,所以数据流的位置信息应该自动置0。如果数据流先前被打开过,它应该被关闭,并且其位置信息、特性信息应该被重新置为初始状态。3)GST_ST原创 2021-03-03 14:38:38 · 1086 阅读 · 1 评论 -
ffmpeg常用命令
yuv以H264编码为avi格式:ffmpeg -s 1920x1080 -pix_fmt yuv420p -i F:\YUV\1080p_yuv420p.yuv -vcodec h264 F:/TestVideo/1080p_x264.aviyuv以H264编码为h264格式:ffmpeg -s 3840x2160 -pix_fmt nv21 -i F:\AVDataSheet\YUV\4K_NV21.yuv -vcodec h264 F:/AVDataSheet/H264/test_4k.h原创 2021-03-03 14:34:34 · 901 阅读 · 1 评论 -
OpenCV4.2.0+VS2015+CMake3.19+Opencv_contrib4.2.0的编译和配置
实现步骤:编译OpenCV4.2.0 带 opencv_contrib 外部库:1)opencv版本号要与opencv_contrib版本一致;2)在where is the source code输入opencv地址/sources地址,在where to build the libraries输入保存编译结果的地址。3)勾选编译选项 “BUILD_opencv_world”,将在生成库文件时生成集合库;4)填入opencv_contrib路径到编译选项 “OPENCV_E原创 2021-03-02 11:20:13 · 509 阅读 · 0 评论 -
H323加载H264插件时出现找不到dll文件问题解决
问题描述:首先,根据官方文档进行H264插件加载的方法如下:================================================H.264 Visual StudioSimon Horne - Feb 2010================================================How to compile H.264 ...原创 2019-02-01 13:31:40 · 956 阅读 · 0 评论 -
使用Opencv时调用svm->load和VideoCapture报错的问题分析
问题 1:调用svm->load("SVM_HOG.xml"));时出现“Parsing error (Missing or invalid SVM type) in cv::ml::SVMImpl::read_params ... ...”的报错。原因分析:可能使用了opencv3.2的调用函数调用opencv2.x所生成的xml分类器导致的,其中opencv2.x所生成的xml有&l...原创 2019-02-01 11:26:41 · 3125 阅读 · 1 评论 -
H323plus添加h264等能力集的疑惑
首先,H323plus自带g.711的语音编码能力,而视频编码(H.261/H.163/H.264)的能力集需自己添加,经自己研究查资料,暂记录以下几点信息:1. H323plus可通过plugin的方式添加音视频编解码的能力集,即H323plus提供了相应插件接口的源代码,只需要编译通过并将其依赖的动态库(windows下为dll)添加到相应的目录(默认目录为:C:\ptlib_plugin...原创 2019-01-25 13:27:11 · 1568 阅读 · 1 评论 -
ETR290规范的理解
ETR290(ETSI TR-101 290 告警事件测量)为“DVB系统测试”指导文件,多应用于广电系统,是对MPEG-2 TS流参数的测试。ETR290为分为3级错误分析。1. 第一级共6种错误传输流同步丢失:连续检测到连续5个正常同步视为同步,连续检测到2个以上不正确同步则为同步丢失错误。传输流失去同步,标志着传输过程中会有一部分数据丢失,直接影响解码后的画面的质量; 个...原创 2018-12-26 18:44:40 · 1625 阅读 · 0 评论 -
FFmpeg中AVFrame中data与linesize的联系
问题描述:通过以下代码获取到pFrame帧数据(即AVFrame结构体),将pFrame内的帧数据通过memcpy函数复制给已经分配好内存的Buffer中,发现总是报错,错误现象有两种首先是访问越界,其次是图像数据不对,其图像如下所示。//AVFrame用于存储解码后的像素数据(YUV) //内存分配 AVFrame *pFrame = av_frame_alloc(); i...原创 2018-09-13 10:55:23 · 6210 阅读 · 0 评论 -
FFmpeg 解码音视频实例及碰到的问题记录(二)
最近项目开发中需要使用FFmpeg进行音视频的解码,在使用过程中遇到了一些问题对其进行记录。FFmpeg版本:FFmpeg3.4.1 下载地址如下:https://download.csdn.net/download/lifei092/106709921、音频解码:av_register_all(); 遍历注册所有的组件,包括各种编解码器、解复用器等等; AVFormatCont...原创 2018-09-17 13:56:52 · 1193 阅读 · 1 评论 -
FFmpeg 解码音视频实例及碰到的问题记录(一)
最近项目开发中需要使用FFmpeg进行音视频的解码,在使用过程中遇到了一些问题对其进行记录。FFmpeg版本:FFmpeg3.4.1 下载地址如下:https://download.csdn.net/download/lifei092/106709921、视频解码:av_register_all(); 遍历注册所有的组件,包括各种编解码器、解复用器等等; AVFormatCont...原创 2018-09-17 11:51:33 · 1404 阅读 · 1 评论 -
解决同名dll冲突的问题
问题描述:软件同时集成两种IPC的SDK时,遇到dll同名的情况,因此在调用时会出现冲突的情况。解决方法如下:采用动态加载dll库的方法。#include "common.h"#include "iostream"#include "tchar.h"#include "windows.h"using namespace std;using namespace cv;...原创 2018-09-03 14:00:49 · 4499 阅读 · 1 评论 -
x264代码学习笔记(五):x264_slicetype_analyse函数
x264_slicetype_decide函数(代码所在位置为“x264-snapshot-20171128-2245-stable\encoder\slicetype.c”)的主要作用为:真正用于分析帧类型(I\P\B帧)调用顺序如下:x264_encoder_encode—>x264_lookahead_get_frames—>x264_slicetype_deci...原创 2018-09-03 10:28:31 · 1157 阅读 · 1 评论 -
x264代码学习笔记(四):B帧是何时被确定帧类型的?怎样进行编码的?
在上一篇博客《x264代码学习笔记(三):x264_slicetype_decide函数》里,在解读x264_slicetype_decide函数过程中,一直有这样的疑问,即B帧是何时被确定类型的,具体是怎样将视频帧由输入序列(播放序列)转换为编码序列呢? 为求解答案,我书写了一个实例进行代码调试,如下所示:#include <assert.h>#...原创 2018-08-30 14:19:45 · 3094 阅读 · 1 评论 -
x264代码学习笔记(二):x264_encoder_encode函数
encode()函数中循环调用encode_frame()函数进行逐帧编码:调用x264_encoder_encode()函数完成一帧编码; 将编码后的码流载入码流文件中。static int encode_frame( x264_t *h, hnd_t hout, x264_picture_t *pic, int64_t *last_dts ){ x264_picture_t...原创 2018-08-21 16:07:31 · 6413 阅读 · 1 评论 -
x264代码学习笔记(三):x264_slicetype_decide函数
x264_slicetype_decide函数(代码所在位置为“x264-snapshot-20171128-2245-stable\encoder\slicetype.c”)的主要作用为:分析帧类型(I\P\B帧)以及将视频播放序列转换为编码序列调用顺序如下:x264_encoder_encode —>x264_lookahead_get_frames —>x264_sl...原创 2018-08-27 11:58:38 · 2046 阅读 · 1 评论 -
码率控制基础知识
视频编码中,码流控制占有一定比例,它控制着码率输出是否符合预期,从而可以保证码流在网络传输中稳定,减少由于码率波动引起的视频卡顿等现象。下面举一个例子,解释一下码率控制是如何进行的。一个视频等待压缩,其参数如下:height : 1080 weight : 1920 fps: 25 目标码率:码率控制在2Mbit/s码率控制流程:首先,2Mbit/s = 2000000bit/...原创 2018-08-22 11:06:38 · 5310 阅读 · 0 评论 -
x264代码学习笔记(一):main函数和encode函数
x264代码的主输入口:main()函数对软件进行多线程初始化 对命令行字符串进行编码格式检测,若不为UTF-8编码格式,则转换 解析命令行参数,并赋值给 x264_param_t 结构体和 cli_opt_t 结构体,以备后续使用 使用encode() 函数对视频数据进行编码压缩 关闭文件等内存清理操作int main( int argc, char **argv ){ ...原创 2018-08-16 15:28:03 · 1200 阅读 · 2 评论 -
视频播放Seek的基本原理
首先了解一下NAL包结构,如下图所示为NAL的包头结构,其中unit_type占用5个bit,表示帧类型如下表所示,其中IDR图像对应的unit_type数值为5,因此可以通过包头信息判断流数据是否为IDR图像。 下面开始介绍视频播放Seek的基本原理,如下图所示,为视频文件播放时间轴示意图,Start为开始播放视频的,End为视频播放结束,IDR帧为立即刷新帧所对应的播放时刻,S...原创 2018-08-03 10:27:47 · 8202 阅读 · 1 评论 -
window下通过msys2编译libx264.lib
网上有很多编译x264库的方法,本人也都折腾了一遍,个人认为最为简单的方法是通过msys2在window系统下搭建编译环境来编译libx264最为简单易行,废话不多说,现在搭建环境。msys2的下载地址为:http://www.msys2.org/首先下载msys2并安装软件,安装时可以选择安装路径,我选择的是安装目录为:“D:\msys2”,安装完毕之后双击如下图标,得到如下界面...原创 2017-05-11 20:12:51 · 3510 阅读 · 0 评论