自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (3)
  • 收藏
  • 关注

原创 ffmpeg学习历程

一. 需求 将ffmpeg移植到arm-linux环境(我的是海思HI35XX系列平台:HI3531A, HI3521A, HI3520D等),实现将H264裸流(我的是直接从海思编码模块VENC获取)封装成.mp4或.avi格式的视频文件。 由于嵌入式环境FLASH空间有限,必须将ffmpeg裁剪得足够小。实现代码:ffmpeg实现将H264裸流封装成.mp4或.avi文件二. ffmpeg学习● 跟着雷神认识ffmpeg [总结]FFMPEG视...

2020-07-17 16:22:42 683

原创 Ubuntu添加NFS v2支持

今天调试新方案的板子,发现新板子不能通过NFS挂载到我Ubuntu,报错:“Protocol not supported”。但是旧板子是可以正常挂载的。后面才知道,新版本只能通过NFS v2访问,而Ubuntu17以后默认安装的NFS去掉了对v2的支持。查看支持的NFS协议版本:cat /proc/fs/nfsd/versions我的得到-2 +3 +4 +4.1 +4.2 (说明支持v3、v4,不支持v2)解决办法:在/etc/default/nfs-kerne...

2021-01-14 10:57:28 2895 2

原创 ffmpeg源码裁剪移植到arm-linux

编译裁剪参考: ffmpeg编译裁剪移植到arm-linux基于上述极大化的编译裁剪,最终得到了三个加起来大小在1M左右的库, 虽然跟编译全开时的几十M相比已经裁剪了非常多了。但在嵌入式环境中(FLASH只有32M甚至更小), 1M的大小还是不行的,这时需要直接去看懂源码, 基于源码进行删减。我们项目就是基于源码进行删减,最终只编出了一个命名为libffmpeg.so的库,大小只有200多KB。这个需要很强的功底,也费时间的,这里我只提供一个思路。我们在make的时候,...

2020-07-17 15:22:49 836

原创 ffmpeg编译裁剪移植到arm-linux

ffmpeg可以通过配置不同的编译选项来裁剪ffmpeg本身的大小,下面我基于2.1.3版本来说明。至于支持哪些编译选项,可输入 ./configure --help 查看,如下:Usage: configure [options]Options: [defaults in brackets after descriptions]Help options: --help print this message --list-decoders

2020-07-17 15:03:09 1238

原创 ffmpeg实现将H264裸流封装成.mp4或.avi文件

由于我是移植到arm-linux环境(海思HI3521A),H264裸流直接从海思的编码模块VENC获取。H264数据流序列: SPS, PPS, SEI, I, P, P, ... P, P, SPS, PPS, SEI, I, P, P, ... P, P, ...源码如下:#include <stdio.h>#include "mpi_venc.h"#ifndef __STDC_CONSTANT_MACROS#define __STDC_CONSTANT_MA...

2020-07-17 14:22:00 6849 1

原创 为什么录像都是用.avi而不是.mp4?

如果还在往封装里写数据, 突然断电,由于没调用av_write_trailer MP4直接丢失moov,导致损坏的时候无法解析。 而AVI不同,照样可以播放, 因为AVI的没给gop的IDR帧前都有SPS和PPS, 每一个gop都可以独立解析,不依赖其他gop的帧 对于海思裸流输入: SPS, PPS, SEI, I, P, P, ... P, P, SPS, PPS, SEI, I, P, P, ... P, P AVI封装数据流: SPS, P

2020-07-15 17:53:53 1240 1

转载 视频基础知识

转载至:https://vcb-s.com/archives/2726本教程意在讲述一些视频音频制作的基础知识和术语,适合不了解压片原理的收片党们自学。它可以比较详细地回答以下常见的问题:. MP4/MKV 这些格式有什么区别?哪个画质好?. 视频的码率是怎么算的?为什么同样是 1080p 的视频,有些体积大有些体积小?. 视频储存的图像信息是什么格式的?跟显示器一样的红绿蓝么?...

2019-03-05 18:48:41 1373

转载 jpeg压缩介绍

参考以下链接:https://blog.csdn.net/qq_29859497/article/details/72860371https://blog.csdn.net/redline2005/article/details/24095649https://wenku.baidu.com/view/f0d9ed4fd1f34693dbef3e19.html 总结:一个视...

2019-01-23 10:53:25 1345

转载 CPU, DSP, GPU, FPGA对比

1. CPU一般来说CPU运算能力最弱,CPU虽然主频最高,但是单颗也就8核、16核的样子,一个核3.5g,16核也就56g,再考虑指令周期,每秒最多也就30g次乘法。还是定点的。2. DSPDSP虽然主频不如CPU,但是胜在乘法器多,随随便便带16个乘法器,还是浮点的。再来个4核,8核,还有特定的算法硬件加速,所以虽然主频只有1,2g但是运算能力还是比CPU强。当然现在出现了带专用...

2018-08-17 17:02:10 11195

原创 关于linux移植碰到Resetting CPU ...的问题

今天做wifi移植,更改kernel后重新编译烧录运行,发现板子一直重启,报Resetting CPU ...的错误,如下:## Booting kernel from Legacy Image at 82000000 ... Image Name: Linux-3.18.20 Image Type: ARM Linux Kernel Image (uncompress...

2018-07-25 18:11:16 1748

原创 socket查询存在的网卡接口

#include &lt;stdio.h&gt;#include &lt;string.h&gt;#include&lt;sys/ioctl.h&gt;#include&lt;sys/types.h&gt;#include&lt;sys/socket.h&gt;#include&lt;net/if.h&gt;#include "errno.h"int main(void){

2018-07-06 18:50:31 654

转载 Ubuntu扩大第一分区容量

http://www.360doc.com/content/16/1010/22/7673502_597450953.shtml

2018-07-02 18:45:58 873

转载 哈希表介绍

http://baijiahao.baidu.com/s?id=1580022096840800840&amp;wfr=spider&amp;for=pchttps://www.cnblogs.com/s-b-b/p/6208565.html

2018-05-30 09:52:59 212

原创 arm-linux移植opencv心历路程

最近产品需要做STOP路标识别,开始了解人脸识别,OpenCV等相关技术,下面是我学习一些经历。传统人脸识别过程:1. 训练样本,得到haar分类器(一个.xml格式文件)2. 将图片套入haar分类器检测一、理论知识:图像金字塔https://baike.baidu.com/item/%E5%9B%BE%E5%83%8F%E9%87%91%E5%AD%97%E5%A1%9

2018-04-16 10:00:20 1738

原创 linux编译so库

一、动态库so的编译以一个例子来说明。 这里有三个so_test.h, test_a.c, test_b.c#ifndef _SO_TEST_H_#define _SO_TEST_H_void test_a();void test_b();void test_c();#endif /* _SO_TEST_H_ */#include #include "so_test.h"

2018-03-29 08:50:54 12736

原创 system命令需要注意的地方

子进程终止或者停止时,会将SIGCHID信号发送给其父进程,但是系统默认是忽略此信号。如果父进程希望被告知其子系统的这种状态,则应捕捉此信号。执行system函数时,SIGCHLD信号,最好被显示,因为system函数中,使用到了fork(),waitpid.如果父进程忽略了SIGCHID信号,waitpid就没有不能得到子进程的SIGCHLD信号,那么处理的返回值就会有问题。system的返

2018-03-06 10:24:34 1398

原创 C++中list简单用法

List介绍:    List是stl实现的双向链表,与向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢。示例代码1:#include #include using namespace std; int main(void){ list myList; myList.push_back(1); myList.push_back(2);

2018-02-27 09:36:40 674

原创 /etc/inittab,/etc/init.d/rcS和/etc/profile分析

在kernel挂载根文件系统后,运行的第一个程序是根目录下的linuxrc,实际是一个指向/bin/busybox的链接, 也就是说系统起来后运行的第一个程序是busybox本身。busybox首先解析/etc/inittab这个进行初始化的配置文件, 里面内容如下:# Boot-time system configuration/initialization script.::sy

2018-02-09 17:52:29 2731

转载 了解TCP协议

转载:https://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html转载:http://www.cnblogs.com/jking10/p/5525519.html

2017-12-08 08:48:16 236

转载 Linux awk和sed命令详解

http://blog.csdn.net/SeeTheWorld518/article/details/48630271

2017-12-04 17:13:09 405

原创 json-c需要注意的内存问题

前言:使用c库最关心的是内存谁来分配,谁来释放. jsonc的内存管理方式,是基于引用计数的内存树(链)。如果把一个struct json_object 对象a,add到另一个对象b上, 就不用显式的释放(json_object_put) a了, 相当于把a挂到了b的对象树上, 释放b的时候, 就会释放a。当a即add到b上,又add到对象c上时会导致a被释放两次(double fre

2017-12-04 14:43:08 7160 2

转载 [转]霍夫曼编码(Huffman Coding)

转自:http://blog.csdn.net/xgf415/article/details/52628073霍夫曼编码(Huffman Coding)是一种编码方法,霍夫曼编码是可变字长编码(VLC)的一种。霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的

2017-12-04 14:38:47 547

原创 关系和非关系数据库

非关系型数据库:1. 一般存储是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。2. 可扩展性同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。关系型数据库:1. 一般有固定的表结构1. 复杂查询可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。2. 事务支持使得对于安全性能很高的数据访

2017-12-04 14:38:28 1325

转载 [转]几张图看懂列式存储

转自:http://blog.csdn.net/dc_726/article/details/411431751 为什么要按列存储列式存储(Columnar or column-based)是相对于传统关系型数据库的行式存储(Row-basedstorage)来说的。简单来说两者的区别就是如何组织表(翻译不好,直接抄原文了):Ø  Row-based storage

2017-12-04 14:38:06 347

转载 linux coredump介绍

在程序异常退出时,内核会生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。1.core文件的生成开关和大小限制 1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。 2)使用ulimit -c filesize命令,可以限制core文件

2017-11-27 09:52:28 693

转载 C++ vector和list的区别

转载自:http://www.cnblogs.com/shijingjing07/p/5587719.html1.vector数据结构vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。因此能高效的进行随机存取,时间复杂度为o(1);但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n)。另外,当数组中内存空间不够时,

2017-11-02 15:49:50 323

转载 sscanf 与 正则表达式

sscanf 作用:从一个字符串中读取

2017-09-20 09:25:19 786

转载 Linux下send、sendto、sendmsg函数分析

转至:http://blog.chinaunix.net/uid-20788636-id-1841431.html功能描述:发送消息,send只可用于基于连接的套接字,send 和 write唯一的不同点是标志的存在,当标志为0时,send等同于write。sendto 和 sendmsg既可用于无连接的套接字,也可用于基于连接的套接字。除了套接字设置为非阻塞模式,调用将会阻塞直到数据

2017-09-04 15:05:54 2126

原创 getaddrinfo介绍

一.  getaddrinfo函数原型:int getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res);参数说明:     node:主机名或域名(如:www.baidu.com)     service:端口号,一般直接给NULL

2017-09-04 14:53:54 959

转载 inet_pton()和inet_ntop()函数详解

转载至:http://blog.csdn.net/zyy617532750/article/details/585957001.把ip地址转化为用于网络传输的二进制数值int inet_aton(const char *cp, struct in_addr *inp);inet_aton() 转换网络主机地址ip(如192.168.1.10)为二进制数值,并存储在struc

2017-08-30 14:28:19 806

原创 Linux下通过源码编译安装程序

首先当然是先把某开源库的压缩包下载下来,然后解压\1. 配置./configure --host=arm-linux --prefix=/opt/xxx--host 指明交叉编译工具链前缀--prefix 指明最终生成的库的存放路径PS:当然还有其他很多参数,不过常用的就是这两个(最多还有个 CC)。configure执行后将生成MakeFile文件。2

2017-08-11 23:10:58 395

原创 secureCRT利用 Zmodem 和 TFTP 上传/下载文件

一、利用Zmodem 协议 上传/下载 文件使用到的命令: sz   和   rz说明:rz,  sz 是Linux同Windows进行ZModem文件传输的命令行工具 sz命令发送文件到本地:sz filename 例如:sz  test.txt  (sz支持一次上传多个文件,比如上传当前目录下的所有文件 : sz  *  ;   如果要上传带te关键字的所有文件: sz

2017-08-11 14:40:36 7339

转载 linux进程优先级、进程nice值(转载)

进程cpu资源分配就是指进程的优先权(priority)。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的Linux很有用,可以改善系统性能。还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能。一、先看系统进程:首先,我想用一个简单的命令来引起这个议题。 无论在linux或者unix系统中,用ps –l命令则会类似

2017-08-10 17:06:22 844

转载 tmpfs介绍

tmpfs是一种虚拟内存文件系统,而不是块设备。是基于内存的文件系统,创建时不需要使用mkfs等初始化它最大的特点就是它的存储空间在VM(virtual memory),VM是由linux内核里面的vm子系统管理的。linux下面VM的大小由RM(Real Memory)和swap组成,RM的大小就是物理内存的大小,而Swap的大小是由自己决定的。Swap是通过硬盘虚拟出来的内存空间,

2017-08-10 15:40:10 1383

原创 MINI PCI-E 引脚定义

下面是MINI PCI-E接口的3G模块实物图:

2017-08-10 14:06:56 29114 1

转载 图解DHCP的4步租约过程

转载于http://yuanbin.blog.51cto.com/363003/109574 图解DHCP的4步租约过程 DHCP租约过程就是DHCP客户机动态获取IP地址的过程。DHCP租约过程分为4步:①客户机请求IP(客户机发DHCPDISCOVER广播包);②服务器响应(服务器发DHCPOFFER广播包);③客户机选择IP(客户机发D

2017-08-10 11:11:53 889

原创 FLASH介绍

常见的flash分为 NAND FLASH 和 NOR FLASH两种对比:1. NAND的写入速度比NOR快很多 2. NAND的擦除次数多,速度也比NOR快3. NAND容量大而且便宜3. 但是,NAND的读取速度远不及NOR4. 而且,NAND使用过程中容易出现坏块因此,NOR FLASH常用于存储程序,而大部分U盘都是NAND FLASH

2017-08-09 18:02:33 1033

原创 linux搭建telnet登录

一、 文件系统支持telnetbusybox默认是把telnet和telnetd功能编进去了的,所以这一步一般都省了。二、 挂载devpts文件系统需要在dev目录下建立pts文件夹,并将它挂载成devpts类型。mkdir /dev/ptsmount -t devpts devpts /dev/pts三、 开启telnetd服务telnetd -l /bin/

2017-08-09 14:10:14 745

原创 linux下 /proc 和 /sys 详解

概要:/proc   正在运行的内核信息映射  主要输出: 进程信息    内存资源信息磁盘分区信息等等 /sys    硬件设备的驱动程序信息一、 /proc 文件系统/proc下文件基本都是只读的,除了/proc/sys目录,它是可写的(查看和修改内核的运行参数),详细介绍,查看《etc下sysctl.conf》/proc下数字命令的目录就是对于

2017-08-09 12:39:08 12569 1

原创 /etc/sysctl.conf介绍

/etc/sysctl.conf这个目录主要是配置一些系统信息,而且它的内容全部是对应于/proc/sys/这个目录的子目录及文件。cat /etc/sysctl.conf 内容大概是如下格式:fs.file-max = 3145728fs.suid_dumpable = 1kernel.core_uses_pid = 1kernel.printk = 4 4 1 7ker

2017-08-09 12:37:49 16212 2

雷霄骅(leixiaohua1020)ffmpeg相关工程

雷神ffmpeg教程相关工程,本于传承雷神无私奉献的精神,免费分享给没有积分却又想跟着雷神学习ffmpeg的童鞋们!

2020-07-17

ffmpeg-2.1.3.tar.gz

基于源码,做了如下改动: 1. 解决ffmpeg中的time.h和项目中的time.h冲突问题 libavutil/time.c改为 libavutil/avtimc.c libavutil/time.h改为 libavutil/avtimc.h libavutil/Makefile中的time.h改为avtime.h, time.o改为avtime.o 所有#include "time.h" 改为 #include "avtime.h" 所有#include "libavutil/time.h" 改为 #include "libavutil/avtime.h" 2. 解决UIN

2020-07-17

MINI PCI-E引脚定义

MINI PCI-E的52个引脚定义

2017-08-10

空空如也

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

TA关注的人

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