自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (4)
  • 收藏
  • 关注

原创 本系列介绍了rtmp直播推流全过程(已完结)

本系列介绍了rtmp直播推流全过程 完整项目地址 (已完结)以下文章是针对每一个情况,介绍音视频相关知识,以及实现的原理,总共分五章:第一章:直播推流全过程:视频数据源之YUV(1)RGB或YUV 组成一张画面,很多个的画面就可以组成一个视频,而在视频编解码领域中YUV则是这一切的基础。第二章:直播推流全过程:音频数据源之PCM(2)音频处理就是对声音特性采集成数字信号后进行处理,而PCM则是最原始采集到的数据,称“裸流”。第三章:直播推流全过程:视频编码之H.264(3)为了

2020-12-08 16:39:21 1666

原创 FFmpeg添加字幕的详细操作

在视频中添加字幕可以使视频更具可读性,并为观众提供更好的观看体验,这在多语种内容中尤为重要。FFmpeg是一个流行的开源视频处理工具,它可以被用来给视频添加字幕。本文将介绍FFmpeg集成libass的编译流程,介绍SRT和ASS字幕格式及其参数,如何使用FFmpeg向视频添加硬字幕和软字幕,并通过示例演示如何生成单一字幕和多项字幕。而本文最后实现的效果为:默认中英文字幕,可选英文字幕的软字幕的实现。

2023-04-05 20:20:56 12927 1

原创 重磅音视频开发资料库!!!

这里整理有着丰富的音视频开发的学习资源、开发工具、优秀书籍、教程和开源项目,旨在帮助开发者和爱好者更好地学习、实践和工作。

2023-03-30 11:58:01 721

原创 FFmpeg 简单实现转码

首发地址,会更错本文汇总前面几篇文章,把所有流程合并到一块,简单实现转码的流程。其中有些异常不做处理。转码原理先看雷神的一张图:上图描述的很明白,上完图发现已经不需要语言描述了[Dog]。 但还是画个来说明一下这块之间的联系:其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神) 。代码实现/** * @author 秦城季 * @email [email protected] * @Blog https://qincji.gitee

2021-01-21 19:35:25 915 3

原创 FFmpeg Encode(编码)

首发地址,会更错本文来自官方例子doc/examples/encode_audio.c 和 doc/examples/encode_video.c。FFmpeg编码流程其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神) 。官方例子【Audio】/** * @author 秦城季 * @email [email protected] * @Blog https://qincji.gitee.io * @date 2021/01/07

2021-01-18 20:31:40 2170

原创 FFmpeg Decode(解码)

首发地址,会更错本文来自官方例子doc/examples/decode_audio.c 和 doc/examples/decode_video.c。FFmpeg解码流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wB37NhkP-1610869697159)(11_decode/decode-process.png)]其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神) 。官方例子【Audio】/** *

2021-01-17 15:48:47 1652

原创 FFmpeg Remuxing(重新封装)

首发地址,会更错本文来自官方例子doc/examples/remuxing.c 。FFmpeg解封装流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RdFwzDbO-1610869624110)(10_remuxing/remuxing-process.png)]其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神) 。重新封装的原理就是把输入文件 解封装 之后,再进行 封装 输出到新的文件中。官方例子/*

2021-01-17 15:47:16 629 1

原创 FFmpeg Muxing(封装)

首发地址,会更错本文主要参考雷神的最简单的基于FFmpeg的封装格式处理:视音频复用器(muxer) 与官方例子doc/examples/muxing.c 。FFmpeg解封装流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BZ7YlCag-1610869529867)(09_muxing/muxing-process.png)]其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神) 。以上步骤主要方法的简单说

2021-01-17 15:45:55 428

原创 FFmpeg Demuxing(解封装)

首发地址,会更错FFmpeg解封装流程[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i3sthCn5-1610869455774)(08_demuxing/demuxing-process.png)]其中,AVFormatContext、AVPacket等重要的结构体请看:FFmpeg重要结构体(转自雷神) 。(1)avformat_open_input创建并初始化AVFormatContext结构体,并把输入文件信息赋值到AVFormatContext中。(2)

2021-01-17 15:44:27 433

原创 手撕FLV协议

首发地址,会更错实现效果纯代码实现分离FLV音视频流,并组装成AAC和H264文件,最后能正常播放。注:本文只对有AAC和H264格式音视频流组成的flv进行分离。FLV协议[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oyU21eaj-1610869332555)(07_flv/flv-pr.jpg)]注:脚本部分本文未使用,可前往这查看。实现代码代码注释已经很详细了,其实就是对照协议表进行数据解析,其中:(1) H264协议请看直播推流全过程:视频编码之

2021-01-17 15:42:44 275

转载 FFmpeg重要结构体(转自雷神)

首发地址,会更错本文主要整合FFMPEG中最关键的结构体之间的关系 系列文章,以便于后面学习以及资料的查阅。结构体间联系[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cfJn4l60-1610869259427)(06_struct/struct-relationship.jpeg)]a)解协议(http,rtsp,rtmp,mms)AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储

2021-01-17 15:41:25 231

原创 使用Clion阅读FFmpeg源码(支持跳转)

首发地址,会更错前言本方案仅仅适用于阅读FFmpeg,配置方式及其简单,能支持方法间的跳转,但由于配置原因部分无法识别或跳转,介意者勿入!!方案一(简单)此方案非常简单,能阅读绝大部分源码了,但仍会缺失一些头文件,导致无法小小部分无法查阅。步骤1在Clion新建c++项目项目File->New Project->Create,如下图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l6w0Zhdv-1610869186665)(05_source/so

2021-01-17 15:39:58 798

原创 FFmpeg导入到Clion(MacOS)

首发地址,会更错继如何编译FFmpeg后,本章也是基于前面来讲解如何把编译后的库文件移入到Clion。在编译ffmpeg前,有一点需要提前说明的,Mac系统并不支持链接静态库,详细请看初步认识c/c++编译这篇文章。针对于平台的差异性,CLion工具在Mac系统中使用CMakelist.txt进行交叉编译并不友好,我试过集成Android平台的ffmpeg,最终以失败而告终,主要报错原因是:无法指向NDK中的 ld 链接器(要是哪位朋友尝试编译通过还望告知)。所以后续如果是Android项目还是老老实实

2021-01-17 15:38:24 585 1

原创 编译ffmpeg4.2.2

首发地址,会更错前言在编译FFmpeg之前,我们得先知道FFmpeg包含了那些内容(组件),我们应该要如何查看并选择?这里我们就简单来说说FFmpeg编译的过程,以及集成x264,编译android平台所需要的动态库等。(这里的测试使用的是Mac系统)FFmpeg编译流程编译过程主要分为两步(下图):(1)configure:通过configure --help查看我们所能选择的配置。前往查看configure配置选项注释。这一步后会生成许多Makefile编译所需要的东西。其中在 ffbuil

2021-01-17 15:36:32 462

原创 Shell脚本

首发地址,会更错简介Shell脚本(Shell Script)是一种为Shell编写的脚本程序。而Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。在Linux中Shell程序又有很多种,如:sh - 即 Bourne Shell。sh 是 Unix 标准默认的 shell。bash - 即 Bourne Again Shell。bash 是 Linux 标准默认的 shell。……其中,bash由于易用和免费,被广泛使用。每种Shell程序都有其对应的解释器,在脚本文件第一

2021-01-17 15:35:45 267

原创 0基础学习音视频路线,以及重磅音视频资料下载

一、前言正所谓源于开源,回馈开源!以下是我个人的学习建议。丰富的音视频资料往最后翻。二、学习技能技能重要度作用学习建议c/c++★★★★☆音视频开源库基本都是用c/c++写的,如:FFmpeg库用C语言写的,Webrtc底层是用c++写的。1. 看动脑或网易c/c++视频;2. 看书:c++ primer 第5版;3. 看FFmpeg源码;4. 最重要自己动手敲。cmake★★★☆☆跨平台引导编译的重要语言。在CMakeList.txt文件体现。1. 看动脑C

2021-01-13 21:41:29 494

原创 搭建自己的博客门面!

Gitee page + Hexo {theme:pure 和 图片处理插件:hexo-image-link} + Typory创建自己仓库,如:(1)github:自己的项目 https://github.com/xhunmon/新建仓库:https://github.com/xhunmon/xhunmon.github.io生成的自己博客地址:https://xhunmon.github.io(2)gitee:自己的项目:https://gitee.com/qincji/新建仓库:

2020-12-09 10:34:05 281

原创 ps抠图的两种方式[杂]

1.前言:以前工作需要学了点抠图的技巧,输出的文档倒是很详细,但是因为隐私问题不便公开,趁周末翻出来整理下做个移动笔记,顺便复习下。 2.目标和资源:目标是要抠出来这两张图片,psd资源:http://pan.baidu.com/s/1i5CbVLj 3.方式一:单个图层–>脚本–>将图层导出到文件… (1)将两个目标图层留下,删除其他图层和组 删除前 删除后(2)选中两个图层后,文件

2017-10-28 19:39:12 428

原创 Android 图解自定义车速表

简单讲述绘制圆弧、渐变圆、时速表刻度、文字和时速指针1.前言:下图来自于度娘,截取一部分来绘制,其他的内容大同小异;而动图为所实现的效果图。 2.需求分析:如上第一张图,这些参数可能经常被变动,所以把这些做成自定义属性,方便后面修改。3.自定义属性的定义: 在values目录下新建attr.xml<?xml version="1.0" encoding="utf-8"?><resources>

2017-09-21 20:13:25 1760 1

原创 Android源码之路(三.配置Android.mk文件)

1.前言:虽然mk文件也只是偶然用到,但是前一段时间用到时花了不少的时间去弄,所以有空就整理一下。另外,这是在android6.0系统做的测试,一些例子也是依据源码的例子来的。(1)整编过得android6.0源码教程:http://blog.csdn.net/github_38117599/article/details/779383392.先配置一个最简单的mk,编译生成一个目标文件(1)在fr

2017-09-17 13:53:37 3121 1

原创 python3刷博客积分

csdn积分不够用了咋办呢?刷!!!1.前言:我们通常在csdn写博客做笔记,作为一个热爱做笔记的人,写的文章多了,可是这里文章没什么人看,接着积分就不够了,写不了了咋办呢?别人不看,我还不能“自己看”吗?就用这简单的Python3刷刷刷……2.简单实现快速去刷# encoding=utf8import requestsimport timeimport threadingoneUrl = "

2017-09-17 10:14:52 553

原创 笔记之git工作使用

还记得当初刚接触git的时候因为操作不当,提交了错误代码上去git仓库,被叼飞起,因此平时工作遇到错误都做下笔记,最近有空就整理下分享出来,以便以后复习,要是有错还望指正。 这是前段时间应别人做的入门笔记:http://blog.csdn.net/github_38117599/article/details/698701191.前言:工作中使用git说简单也简单,说难也难;简单是指工作中可以

2017-09-16 14:41:28 1374

原创 Android源码之路(二.环境配置与整编)

为了实现在VM ubuntu 16.04 编译android 6.0源码,配置编译环境与源码的整体编译1.前言:在Ubuntu编译android源码时,编译不通过最主要的原因是缺少所要依赖资源,所以在安装依赖时一定要看是否成功。2.编译条件: 1.合适的Ubuntu系统:http://blog.csdn.net/github_38117599/article/details/77926922

2017-09-11 21:45:38 2049

原创 Android源码之路(一.安装Ubuntu系统)

1.前言:在VM12虚拟机创建ubuntu16.04,解决编译时:make: fork: 无法分配内存等跟window系统不太兼容的错误。 成功编译的结果2.安装ubuntu条件: 1.VMware12虚拟机 2.ubuntu-16.04.3-desktop-amd64.iso镜像文件 3.硬盘空间130g3.安装过程 (1).新建 (2).选择自定义 (3).下一

2017-09-10 23:44:44 2118

原创 Android 使用iperf测试wifi吞吐量

Android使用iperf测试wifi吞吐量大体上分为三个步骤编译生成android端的可执行文件iperf把该文件拷贝到/data/data/包名/iperf目录下根据iperf命令执行该文件第一部分,在android下编译生成iperf文件1.获取需要编译的源代码:https://osdn.net/projects/sfnet_iperf/downloads/iperf-2.0.5.t

2017-09-03 21:16:30 7526 2

原创 MySql常用命令总结

创建xxx数据库create database xxx; 删除xxx数据库drop database xxx charset=utf8; 切换到xxx数据库use xxx; 查看当前选择的数据库select database();删除xxx数据库drop database xxx charset=utf8;切换

2017-08-22 19:30:33 1829

原创 gps冷启动,温启动和热启动源码分析

冷启动,温启动和热启动实现过程GpsLocationProvider.java 在全局定义了一个通往底层的方法,这个就是关联到flags是什么,通常做底层会封装好改接口,然后告诉你传递什么值对应着以什么方式启动,比如传入参数:冷启动:0XFFFF 暖启动:0X0001 热启动:0X0001private native void native_delete_aiding_data(int f

2017-08-15 16:43:31 3933

原创 5.0绑定远程服务的两种方式

前言:今天闲下来翻了下以前的笔记,然后就做了个Demo,简单的使用两个apk来模拟服务端和客户端,用两种方式来绑定远程服务,实现IPC通讯。实现要点:1,先看客户端效果: 2,看两个项目的工程结构: 3,看客户端绑定远程服务的关键代码: //第一种绑定方式final Intent intentPay = new Intent();intentPay.setAction("com.xhunmo

2017-06-26 21:24:01 2487

原创 自定义收音机搜台控件——RadioRulerView

前言:像这类的自定义控件有非常多的开源项目,但还是没有找到我项目想要的,所以简单实现了一个,下面简单讲讲实现原理。效果图:实现思路:首先画固定背景尺子,而实现这个则要计算刻度线的宽度、刻度线间的距离,以及要确定刻度线的总是,根据这些可以求出第一条刻度线的x坐标,使得整个尺子居中;下图为尺子尺寸的计算方法:贴上关键代码: /** * 画固定的尺子 * @param canvas

2017-04-19 19:50:59 2368 2

原创 笔记之git入门

前提要安装git工具,拥有自己的github账户;在github上面创建一个创库,然后拿到创库的地址,相信常去github下载的都知道这个。 把项目clone到本地的一个目录下 1.右击穿件的文件夹,点击”Git Bash Here”,进入命令行 2.在命令行输入刚刚复制github创建的创库地址后回车(如下图):git clone https://github.com/xhunmon/tes

2017-04-09 18:33:50 1381

原创 同时使用两种方式启动服务

突然看到公司项目有个地方同时使用startService()和bindService()启动服务,做了个demo测试了一下,下面直接上代码: Activity中:package com.example.test3;import android.app.Activity;import android.content.ComponentName;import android.content.C

2017-04-05 17:18:19 1820

原创 回调与观察者模式的实现原理

回调与观察者模式的实现原理:废话不多说,直接上Demo回调的原理:观察者模式: A类中定义一个被观察者画家 canvas.drawText("画家画画", 50, 50, mPaint); //4.只有房间的人能看画家绘制 for(int i=0 ;i<lists.size(); i++){ lists.get(i).look(); }

2017-03-29 19:35:59 2031

SDL2-API手册.zip

SDL2-API手册

2021-01-13

rtmp协议规范翻译1.0

rtmp协议规范翻译1.0

2021-01-13

idegen.jar

android6.0编译生成的framework源码导入android studio中。

2017-09-23

FilterTerminal

一款很好的绿色版的测试工具。 非常好用的工具,开机过程的trace都可以打印出来,支持多窗口,都filter操作等。

2017-09-15

空空如也

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

TA关注的人

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