DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 541 评论 :: 1614万 阅读
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

02 2022 档案

摘要:定义struct InitMember{ int first; double second; char* third; float four;};方法一:定义时赋值struct InitMember test = {-10,3.141590,"method one",0.25};1需要注意对应的顺序 阅读全文
posted @ 2022-02-28 15:25 DoubleLi 阅读(841) 评论(0) 推荐(0) 编辑

摘要:目录 目录 什么是ffmpeg filter 如何使用ffmpeg filter 1 将输入的1920x1080缩小到960x540输出 2 为视频添加logo 3 去掉视频的logo 自己写一个过滤器 filter的结构体 filter_frame调用流程 1 decode_video ffmpe 阅读全文
posted @ 2022-02-28 11:55 DoubleLi 阅读(867) 评论(0) 推荐(0) 编辑

摘要:ffmpeg中的时间单位 1. AV_TIME_BASE ffmpeg中的内部计时单位(时钟基),ffmepg中的所有时间表示的单位, 比如AVStream中的duration, 即表示这个流的长度为duration个AV_TIME_BASE。AV_TIME_BASE定义为: #define AV_ 阅读全文
posted @ 2022-02-28 11:06 DoubleLi 阅读(474) 评论(0) 推荐(0) 编辑

摘要:五、Filter实现的源码分析 5.1 滤镜的回调函数的调用流程,以单滤镜设置(如 -vf "delogo")为例 init() query_format(); // 输入输出的格式查询: 列出滤镜支持的格式列表 config_input(); config_output(); for (;;) { 阅读全文
posted @ 2022-02-28 11:04 DoubleLi 阅读(403) 评论(0) 推荐(0) 编辑

摘要:一、FFmpeg filter的原理 1. 引言及示例 FFmpeg中的libavfilter提供了一整套的基于filter的机制。 filter本身是一个插件的形式,可以快速的组装需要的效果。 比如下面的filter,可以实现视频的水平镜像效果。 ffplay.exe sample.rmvb -v 阅读全文
posted @ 2022-02-28 11:01 DoubleLi 阅读(691) 评论(0) 推荐(0) 编辑

摘要:1. 全局服务器调度 1.1 部署架构原理图 下图是一个典型的通信系统的服务器部署图: 说明: > 每个用户所在的地区有一个或多个IDC机房覆盖, > 每个IDC机房部署有一台或多台信令边缘服务器、一台或多台媒体边缘服务器; > 边缘IDC机房与中心IDC机房间可能有专线连接,也可能因为无专线而只能 阅读全文
posted @ 2022-02-28 10:56 DoubleLi 阅读(115) 评论(0) 推荐(0) 编辑

摘要:4. Filter的结构体关系图与定义 4.1 结构体间的关系图 filter涉及的结构体,主要包括: > FilterGraph, AVFilterGraph > InputFilter, InputStream, OutputFilter, OutputStream > AVFilter, AV 阅读全文
posted @ 2022-02-28 10:52 DoubleLi 阅读(479) 评论(0) 推荐(0) 编辑

摘要:开帖大吉! 利用FFMPEG工作已有一年多,许多学习文档散落在电脑各处,没有一个清晰明确的组织脉络;还有踩过又填平的各种坑,时间久了难免遗忘,再次遭遇时仍然要从头查起;而且事必躬亲也是毫无疑问的低效率,不利于后来同事的成长。因此有了开博的决定,希望记录下自己走过的脚印,见证自己的成长,也能帮助后来人 阅读全文
posted @ 2022-02-25 18:29 DoubleLi 阅读(241) 评论(0) 推荐(0) 编辑

摘要:在“FFMPEG中的两输入Filter实现(一)”中分析了滤镜的注册、解析、创建和初始化,这一篇我们就来分析一下 overlay滤镜在ffmpeg中是如何使用的。 下图展示了视频帧从解码到滤波的整体过程,浅紫色部分为滤波实现的主要函数调用关系,整洁起见,一些旁的分支和不太重要的函数没有列出来,会在后 阅读全文
posted @ 2022-02-25 18:24 DoubleLi 阅读(390) 评论(0) 推荐(0) 编辑

摘要:1. 为什么要拼接 如果你的被射物足够小; 如果你的镜头视野足够大; 如果你的银子足够多,可以买更牛的相机,更牛的镜头。。。 如果你没有那么多的如果,项目多了,图像拼接在所难免。 2. 效果是啥 借助Halcon自带的例子,就是将下面两张图像,拼接为一个更宽的图像。 图像1: 图像2: 拼接后的图像 阅读全文
posted @ 2022-02-24 11:53 DoubleLi 阅读(3356) 评论(0) 推荐(0) 编辑

摘要:图像拼接在实际的应用场景很广,比如无人机航拍,遥感图像等等,图像拼接是进一步做图像理解基础步骤,拼接效果的好坏直接影响接下来的工作,所以一个好的图像拼接算法非常重要。 再举一个身边的例子吧,你用你的手机对某一场景拍照,但是你没有办法一次将所有你要拍的景物全部拍下来,所以你对该场景从左往右依次拍了好几 阅读全文
posted @ 2022-02-24 10:54 DoubleLi 阅读(655) 评论(0) 推荐(0) 编辑

摘要:在shell中常用的特殊符号罗列如下: # ; ;; . , / \\ 'string'| ! $ ${} $? $$ $* \"string\"* ** ? : ^ $# $@ `command`{} [] [[]] () (()) || && {xx,yy,zz,...}~ ~+ ~- & \\ 阅读全文
posted @ 2022-02-23 15:30 DoubleLi 阅读(755) 评论(0) 推荐(0) 编辑

摘要:tr命令主要用于删除文件中控制字符或进行字符转换。本文主要介绍tr命令的基本语法和使用实例。 tr基本语法 tr命令格式:tr [ -d ] [ -c ] [ -s ] [ 字符串1 ] [ 字符串2 ] 文件名。其中字符串1用于查询,字符串2用于处理各种转换。 选项介绍: -c 用字符串1中字符集 阅读全文
posted @ 2022-02-23 11:48 DoubleLi 阅读(1058) 评论(0) 推荐(0) 编辑

摘要:方法一:ifconfig -aifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:" 命令解释 ifconfig -a 和window下执行此命令一样道理,返回本机所有ip信息 grep 阅读全文
posted @ 2022-02-23 10:53 DoubleLi 阅读(1107) 评论(0) 推荐(0) 编辑

摘要:概述 在Linux的grep命令中如何使用or,and,not操作符呢? 其实,在grep命令中,有or和not操作符的等价选项,但是并没有grep and这种操作符。不过呢,可以使用patterns来模拟and操作的。下面会举一些例子来说明在Linux的grep命令中如何使用or,and,not。 阅读全文
posted @ 2022-02-23 10:25 DoubleLi 阅读(164) 评论(0) 推荐(0) 编辑

摘要:在shell中如何判断一个变量是否为空判断一个脚本中的变量是否为空,我写了一个这样的shell脚本: #!/bin/sh #filename: test.sh para1= if [ ! -n $para1 ]; then echo "IS NULL" else echo "NOT NULL" fi 阅读全文
posted @ 2022-02-22 16:45 DoubleLi 阅读(4448) 评论(0) 推荐(0) 编辑

摘要:截取文件名和后缀 编写Shell脚本的过程中,经常会和文件名和文件路径打交道。如果用户输入了一个文件的全名(可能包含绝对路径和文件后缀),如何得到文件的路径名,文件名,文件后缀这些信息呢。Shell脚本拥有强大的字符串处理能力,如果把文件名当做字符串,我们不难使用cut或sed这样的工具得到我们想要 阅读全文
posted @ 2022-02-22 16:45 DoubleLi 阅读(1682) 评论(0) 推荐(0) 编辑

摘要:如果文件是 .css文件 或 .js文件,则进行处理。 file=$1 if [ "${file##*.}"x = "css"x ]||[ "${file##*.}"x = "js"x ];then do something fi 注意: 1> 提取文件后缀名: ${file##*.} ##是贪婪操 阅读全文
posted @ 2022-02-22 15:42 DoubleLi 阅读(454) 评论(0) 推荐(0) 编辑

摘要:新建一个shell文件 $ vi traveDir.sh1输入以下代码 #! /bin/bash function read_dir(){ for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令 do if [ -d $1"/"$file ] #注意此处之间一定要加上空格 阅读全文
posted @ 2022-02-22 15:27 DoubleLi 阅读(235) 评论(0) 推荐(0) 编辑

摘要:Linux Shell日期比较,数值比较和字符串比较及相关 说明: 1. 把字符串当成整型进行比较,由于abcd等字符对不上0123当程序尝试去转成二进制时无法完成转换,所以用于数值比较的运算不能用于字符串比较;但是把整型当成字符串进行比较,0123这些数值完全可以转成ASCII码而且原本两个整型相 阅读全文
posted @ 2022-02-22 15:09 DoubleLi 阅读(2497) 评论(0) 推荐(0) 编辑

摘要:一、简介 rsync 是一个常用的 Linux 应用程序,用于文件同步。 它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。它也可以当作文件复制工具,替代cp和mv命令。 它名称里面的r指的是 remote,rsync 其实就是"远程同步"(rem 阅读全文
posted @ 2022-02-22 11:04 DoubleLi 阅读(575) 评论(0) 推荐(0) 编辑

摘要:周六晚上七点多,我正在看书呢,突然女朋友跑过来问我她的IPAD去哪了,火急火燎的。 她拿到了IPAD之后就不再理我了,不过作为一个程序员,我还是比较好奇这么大的流量虎牙到底能不能扛得住,哈哈哈。于是我过去看了一下,结果看到了下面这一幕: 但是直播竟然并没有显得很卡顿,禁不住说了一段话: 据了解,2 阅读全文
posted @ 2022-02-21 17:50 DoubleLi 阅读(25) 评论(0) 推荐(0) 编辑

摘要:什么是CNAME? 先简单的说下域名解析:在以前,人们用IP进行互访,后来发现IP太多不好记忆,便有了域名,比如www.baidu.com,你一看就知道是百度搜索引擎,而不需要管他的服务器IP是多少,但是在最开始通信的时候,电脑路由器不认识域名,只认得IP啊,要怎么去获得对应的IP呢,这时候有了域名 阅读全文
posted @ 2022-02-21 17:28 DoubleLi 阅读(1152) 评论(0) 推荐(0) 编辑

摘要:Linux下解析域名除了使用nslookup之外,开可以使用dig命令来解析域名,dig命令可以得到更多的域名信息。 dig的全称是 (domain information groper)。它是一个用来灵活探测DNS的工具。它会打印出DNS name server的回应。 一、dig命令用法 dig 阅读全文
posted @ 2022-02-21 17:00 DoubleLi 阅读(916) 评论(0) 推荐(0) 编辑

摘要:ps -ax > tmp.txt ps -ef > tmp.txt 重定向就可以了。 ps -ef|grep -i $USER也可以,不知道什么原理 Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux。这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统 阅读全文
posted @ 2022-02-21 10:59 DoubleLi 阅读(257) 评论(0) 推荐(0) 编辑

摘要:1、使用top命令查看发现cpu使用率超过了100%,如下图: 4868 root 20 0 161m 768 568 S 100.1 0.0 6867:56 pidguard 2、我的机器是8cpu的,经过检查发现top命令显示的是占用的cpu总数。 即8cpu时top下cpu利用率最大可以到达8 阅读全文
posted @ 2022-02-18 18:33 DoubleLi 阅读(3854) 评论(0) 推荐(0) 编辑

摘要:参考资料: https://zhidao.baidu.com/question/287497401.html https://blog.csdn.net/u011341352/article/details/53635484 1、top命令 top - up 后的字段展示,虚拟机运行时间(19小时2 阅读全文
posted @ 2022-02-18 18:30 DoubleLi 阅读(1698) 评论(0) 推荐(0) 编辑

摘要:linux的cpu信息可以从文件中cpuinfo读取。 执行命令: [root@liuli ~]# cat /proc/cpuinfoprocessor : 0 #逻辑核,它的计数是从0开始的,例如这里看到的是0,那我们一般就说这个机器是1核的,说的实际是逻辑核vendor_id : Genuine 阅读全文
posted @ 2022-02-18 18:25 DoubleLi 阅读(1257) 评论(0) 推荐(0) 编辑

摘要:基本概念 cpu个数 是指物理上cpu的个数。 cpu核心数是指物理上,也就是硬件上存在着几个核心。比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组。 cpu线程数 是一种逻辑上的概念,简单地说,就是模拟出的CPU核心数。比如,可以通过一个物理的CPU核心模 阅读全文
posted @ 2022-02-18 18:09 DoubleLi 阅读(2859) 评论(0) 推荐(0) 编辑

摘要:一、小括号,圆括号 () 1、单小括号 () 命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。 命令替换。等同于`cmd`,shell扫描一遍命令行,发现了$(cmd 阅读全文
posted @ 2022-02-18 11:43 DoubleLi 阅读(90) 评论(0) 推荐(0) 编辑

摘要:更多VSCode插件使用请访问:VSCode常用插件汇总 当大家在公司工作时,不可能永远是一个人维护一个项目,当多个人参与一个项目,每个人使用的编辑器不一样,代码风格自然也不一样,那么如何让使用不同编辑器的开发者能够轻松惬意的遵守最基本的代码规范呢? 最后终于找到了editorConfig这个东东, 阅读全文
posted @ 2022-02-18 11:35 DoubleLi 阅读(1157) 评论(0) 推荐(0) 编辑

摘要:为了python 的pep8 标准,把tab键输入从\t的制表符 转为4个空格。 1在vscode下边栏点击 “空格” 在上面选项里设置 使用空格缩进, 以及可以 将缩进转换为空格 2在“文件->首选项->设置”的“用户设置”里添加 "editor.detectIndentation": false 阅读全文
posted @ 2022-02-18 11:34 DoubleLi 阅读(1924) 评论(0) 推荐(0) 编辑

摘要:1、refcounted_frames说明 在接口 avcodec_decode_video2 的注释中,有关于 refcounted_frames 的详细说明:(1)当 AVCodecContext.refcounted_frames 被设置为1,该 AVFrame 被引用计数,返回的引用属于调用 阅读全文
posted @ 2022-02-17 16:21 DoubleLi 阅读(400) 评论(0) 推荐(0) 编辑

摘要:一句话:解码时,当AVCodecContext的refcounted_frames字段为0,则frame的分配与释放由ffmpeg内部本身控制。ide 那么使用是要注意不要破坏picture的数据指针。this 依据:spa AVCodecContext指针 /** * If non-zero, t 阅读全文
posted @ 2022-02-17 16:20 DoubleLi 阅读(385) 评论(0) 推荐(0) 编辑

摘要:这些是跨平台编程导致的;一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较: 16位平台 char 1个字节8位short 2个字节16位int 2个字节16位long 4个字节32位指针 2个字节 32位平台 char 阅读全文
posted @ 2022-02-16 15:44 DoubleLi 阅读(665) 评论(0) 推荐(0) 编辑

摘要:一)64位系统和32位有什么区别? 1、64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存 2、64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系统,64bit软件的基础上的。 什么是64位处理器? 之所以叫 阅读全文
posted @ 2022-02-16 15:41 DoubleLi 阅读(478) 评论(0) 推荐(0) 编辑

摘要:总结了一下AVPacket与AVFrame中拷贝和释放相关操作。这里我理解在AVFrame与AVPacket传递流转的过程中并不会去每次创建和拷贝音视频数据,音视频数据被存储在AVBuffer中,而AVFrame与AVPacket在流转时进行浅拷贝,只有调用其对应unref时,会减少AVBuffer 阅读全文
posted @ 2022-02-15 18:08 DoubleLi 阅读(640) 评论(0) 推荐(1) 编辑

摘要:我一直在尝试复制一个 AVFrame,就像 ffmpeg: make a copy from a decoded frame (AVFrame) 中的回答一样.但是,我似乎无法从 av_frame_copy() 获得正返回码。这基本上是我在做什么: AVFrame *copyFrame = NULL 阅读全文
posted @ 2022-02-15 18:05 DoubleLi 阅读(1712) 评论(0) 推荐(0) 编辑

摘要:/***********ffmpeg学习笔记*******************/ AVFormatContext主要存储视音频封装格式中包含的信息;AVInputFormat存储输入视音频使用的封装格式。每种视音频封装格式都对应一个AVInputFormat 结构。每个AVStream存储一个视 阅读全文
posted @ 2022-02-15 18:02 DoubleLi 阅读(157) 评论(0) 推荐(0) 编辑

摘要:AVFrame里面有data[4]和linesize[4]其中data是一个指向指针的指针(二级、二维指针),也就是指向视频数据缓冲区的首地址,而data[0]~data[3]是一级指针,可以用如下的图来表示: data -->xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 阅读全文
posted @ 2022-02-15 17:57 DoubleLi 阅读(746) 评论(0) 推荐(0) 编辑

摘要:分几种情况: 1.字符数组 使用strcpy 2.int,float,double等数组 使用memcpy,如复制一个长度为5 的 float数组,则代码示例如下 int len = 5; float a[len] = {1.0 ,1.1, 1.2, 1.3, 1.4}; float b[len]; 阅读全文
posted @ 2022-02-11 16:26 DoubleLi 阅读(3728) 评论(0) 推荐(0) 编辑

摘要:复杂的软件项目通常有两个明显的特征:需求不确定和技术复杂 需求不确定来自于客户,我们今天主要来看看技术的复杂性,而技术的复杂性主要体现在 1.需求让技术变复杂 需求本身很复杂,对应的技术也会很复杂,比如说让你做一个个人博客网站和做一个淘宝这样的网站,技术复杂度是有天壤之别的。 要响应需求的变化,也会 阅读全文
posted @ 2022-02-10 18:06 DoubleLi 阅读(484) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示