自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

彼此当年少,莫负好时光

操千曲而后晓声,观千剑而后识器。

  • 博客(55)
  • 资源 (2)
  • 收藏
  • 关注

原创 【Android JNI】在C/C++中调用Java

JNI名词解释jclass对应Java类的名字,jobject对应Java实例化后的对象,jfieldID对应Java类成员变量的ID,jmethodID对应Java类方法的ID。 JNI中对Java的调用,通常要先获取jclass,然后生成实例化对象jobject,根据jclass可以获取jfield&jmethodID,有了这几个元素,可以对Java类的成员变量和方法进行操作。 ...

2018-04-06 14:57:33 1035

原创 【Android JNI】从Java中调用C/C++

Android系统加载JNI Lib的方式要想在Java中调用C的函数,必然要有一定的规则去映射二者的函数名,也就是加载JNI库的方式,下面介绍这两种方式。 JNI_OnLoad当Android的VM(Virtual Machine)执行到C组件(即*so)里的System.loadLibrary()函数时, 首先会去执行C组件里的JNI_OnLoad()函数。这种方法有两个...

2018-04-04 01:45:30 849

原创 【FFmpeg 3.x API应用四】音频编码

摘要这篇文章介绍音频编码,示例程序是读取上一节生成的PCM格式的音频文件,对其进行编码输出。初始化这个必备的操作就不多说了。void AudioEncoding::init(){ avcodec_register_all();}配置编解码器CodecContext查找编码器。在视频编码那一节我们使用avcodec_find_encoder_by_n...

2018-02-13 16:58:16 800 1

原创 【FFmpeg 3.x API应用三】音频解码

摘要这篇文章介绍音频解码,示例程序是读取一个mp3格式或者aac格式的音频文件,解码输出为未压缩的pcm音频文件。初始化FFmepg和FormatContext和视频解码一样,先使用av_register_all注册所有相关组件,然后使用avformat_open_input打开指定的媒体文件,并使用avformat_find_stream_info获取媒体流相关信息,把这些格式信...

2018-02-13 15:46:53 786

原创 【FFmpeg 3.x API应用〇】基于VS2017的FFmpeg开发环境的搭建

准备工作在Windows平台上最强大的IDE非Visual Studio莫属了,虽然本人也非常喜欢并经常用Clion写一些小程序,鉴于VS的通用性还是选择使用VS来学习FFmpeg开发,可以使用免费的VS2017 Comminity社区版。 然后要下载FFmpeg Windows平台的开发工具,可以点这里下载 Dev版本。 把下载下来的incldue和lib目录放到VS工程目录下。开发...

2018-02-12 16:13:55 964

原创 【FFmpeg 3.x API应用二】视频编码

摘要这篇文章介绍使用FFmpeg实现视频解码,具体操作为读取上一节视频解码所生成的YUV420p格式视频文件,对其进行H.264格式视频编码,并将编码后的数据保存为H.264裸流文件Sample.h264。初始化FFmpeg所有操作之前必须先注册FFmpeg组件实现全局初始化。 void VideoEncoding::init(){ avcodec_regis...

2018-02-12 15:25:06 585

原创 【FFmpeg 3.x API应用一】视频解码

摘要这篇文章介绍怎么实现视频解码,具体步骤为读取Sample.mkv视频文件,从中提取视频流,然后解码为YUV图像数据,把YUV数据存储为PGM灰度图像,或者存储为YUV420p RAW格式视频。初始化FFmepg和FormatContext使用FFmpeg API第一个操作就是执行初始化函数:av_register_all注册所有相关组件,然后使用avformat_open_in...

2018-02-12 14:07:04 668

原创 C/C++语言中值传递、指针传递和引用传递

在C语言中值传递、指针传递和引用传递这三种函数参数传递方式是比较基本的知识,用的比较普遍,但不仔细分析其实质的话,时间长容易记混了。网上的资料也较多但多数都不系统,本文力求用最白话的表达和简单的示例把这三种方式描述清楚。没时间看分析的直接看简述就可以了。简述值传递就是最普通的传递方式,比如函数定义为fun(int a),在调用的地方有int x=6, 使用fun(x)就可以了。这种方式在

2018-01-06 00:09:00 17374 6

原创 C语言const限定词基本用法

它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。1. 作用:防止误操作只读内存像这种"Hello"字符串是只读的,操作其内存是不允许的。 char *str = "Hello";str[2]='X';printf("%s\n",str...

2017-11-17 11:58:14 1118

原创 【FFmpeg杂记】音频解码输出PCM格式数据分析

FFmpeg音频解码后输出的为PCM数据,PCM中的声音数据没有被压缩。 FFmpeg中音视频数据基本上都有Packed和Planar两种存储方式,对于双声道音频来说,Packed方式为两个声道的数据交错存储,交织在一起;Planar方式为两个声道分开存储,也就是平铺分开。

2017-08-02 10:25:04 6899

原创 Android 在 Java 代码中实现布局

今天看eoe的视频学习的布局,做个笔记。常见的是在res/layout/activity_xxx.xml文件中实现Android界面布局,也可以在JAVA代码中实现布局,这种方法也是比较灵活,也比较常用。可以使用 LinearLayout.addView() 往一个Layout中添加控件。下面要在一个空的布局中添加5个按钮,第一步先修改xml文件,给根布局元素 LinearLayout 添加一个 i

2016-12-19 14:45:25 1474

原创 Android Activity 之间传递数据

1. 简单的数据传递假设 Activity1 启动 Activity2 的时候给其传递数据Activity1.javaIntent intent = new Intent(Activity1.this, Activity2.class);intent.putExtra("key1", 123L); // long intent.putExtra("key2", "Hello");

2016-12-18 14:08:25 3246 1

原创 Android Studio 引用 assets 文件夹中的内容

看教程,在Eclipse+ADT环境下开发Android应用多数都把音视频之类的文件放在res/raw目录下,但是在AS环境下没法这么干,后来发现AS开发中多把这类文件放在与 res 目录同级的 assets 目录下,因为系统在编译的时候不会编译 assets 下的资源文件,这样的话就没法用R.xxx.id来索引文件了。Android系统提供了一个AssetManager工具类,可以通过getAss

2016-12-17 21:38:13 1038

原创 UDP Socket示例程序:使用fgets函数获取屏幕输入

前一篇文章的UDP Socket示例程序的Client是循环发送固定的一句话,有时候我们希望像聊天软件一样可以自己输入数据。读取屏幕字符串可以使用gets函数和fgets函数,然而因为安全方面的因素,推荐使用后者。 char *fgets(char *buf, int bufsize, FILE *stream);buf: 字符型指针,指向用来存储所得数据的地址bufsize: 整型数据,指

2016-11-27 14:28:48 748

原创 UDP Socket示例程序

通常我们涉及到的网络编程,也称为Socket编程,多数是TCP和UDP协议的编程,二者最大的区别就是:1. TCP是可靠的传输,需要三次握手建立连接再传数据,而UDP是无连接的,即使没有接收方,也可以一个劲往一个地址发数据,所以说是不可靠的传输模式。 2. TCP是基于流模式的,UDP是基于数据报模式的。因为UDP比TCP稍微简单一些,先介绍UDP编程模式。   从编程的角度来说,UDP Sock

2016-11-25 22:52:21 1133

ffmpeg-4.4.1-2021.12.23.tar.gz

ffmpeg+ffprobe 支持编码器: libx264 core:164 r3075M 66a5bc1 libx265 v3.5 libfdk-aac v2.02 libmp3lame v3.100 libvpx v1.10.0 libopus v1.3.1 libaom v3.2.0 openssl v3.0 支持的系统 OS: Ubuntu 13.04 or above CentOS 7 or above Other Linux distributions with GNU C Library (GNU libc) version 2.17 or above

2021-12-23

Xshell 6.0.0125 Personal (Free for Home/School) 2019/7

Windows上最好用的SSH/Telnet/串口登陆客户端,XShell 官方个人免费版,Xshell 6.0.0125 Personal (Free for Home/School) 2019/7。 ---------------------------------------------------------------------------------------------------------------------------------------------- 资源太贵了,大家可以点这个链接填邮箱,然后邮箱能收到下载链接了。 https://www.netsarang.com/zh/free-for-home-school/ ----------------------------------------------------------------------------------------------------------------------------------------------

2019-07-08

空空如也

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

TA关注的人

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