首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
FFmpeg开发实战(六):使用 FFmpeg 将YUV数据编码为视频文件
】的更多相关文章
FFmpeg开发实战(六):使用 FFmpeg 将YUV数据编码为视频文件
本文中实现的一个小功能是把一个YUV原始视频数据(时间序列图像)经过h264编码为视频码流,然后在使用mp4封装格式封装. 编码&封装的流程图如下: 使用ffmpeg编码流程: 1.首先使用av_register_all()函数注册所有的编码器和复用器(理解为格式封装器).该步骤必须放在所有ffmpeg代码前第一个执行 2.avformat_alloc_output_context2():初始化包含有输出码流(AVStream)和解复用器(AVInputFormat)的AVFormatConte…
FFmpeg开发实战(一):FFmpeg 打印日志
在Visual Studio 开发(二):VS 2017配置FFmpeg开发环境一文中,我们配置好了FFmpeg的开发环境,下面我们开始边实战,边学习FFmpeg. 首先,我们要学习的就是FFmpeg的日志输出系统 . 一.FFmpeg 日志输出系统介绍 FFmpeg 日志输出的核心函数方法为: av_log() .为什么说av_log()是FFmpeg中输出日志的核心函数函数? 因为我们随便打开一个FFmpeg的源代码文件,就会发现其中遍布着av_log()函数.一般情况下FFmpeg类库的源…
FFmpeg开发实战(三):FFmpeg 打印音视频Meta信息
在之前使用FFmpeg命令行的时候,我们经常看到FFmpeg命令行在输出音视频文件的会打印一下文件的Meta信息,类似如图: 那么我们如何通过代码的方式输出这些Meta信息呢? FFmpeg提供了一个API专门用来打印多媒体文件的格式 —— av_dump_format ( ). 下面是示例代码: // 使用FFmpeg打印多媒体文件的Meta信息 void ffmpegVideoMeta() { av_log_set_level(AV_LOG_INFO); AVFormatContext *f…
FFmpeg开发实战(二):FFmpeg 文件操作
FFmpeg 提供了丰富的API供我们使用,下面我们来讲述一下文件操作相关的API: FFmpeg 删除文件:avpriv_io_delete() FFmpeg 重命名文件:avpriv_io_move() FFmpeg 打开目录:avio_open_dir() FFmpeg 读取目录:avio_read_dir(); FFmpeg 关闭目录:avio_close_dir() 使用FFmpeg文件操作API实现删除和重命名的实例代码如下: // FFmpeg 删除文件操作 void ffmpeg…
FFmpeg开发教程一、FFmpeg 版 Hello world
本系列根据项目ffmpeg-libav-tutorial翻译而来 Chapter 0 - 万物之源 -- hello world 然而,本节的程序并不会在终端打印"Hello world",而是会打印原视频文件的一些信息,比如封装格式.视频时长.分辨率.音频通道数.最后,我们将解码每一帧视频,并将它们保存为YUV文件. FFmpeg libav 架构 在开始coding之前,我们先来了解下FFmpeg的代码结构,并了解它的各个组件之间是怎么通信的. 下图展示了视频解码的大致流程: 首先…
Koa与Node.js开发实战(1)——Koa安装搭建(视频演示)
学习架构: 由于Koa2已经支持ES6及更高版本,包括支持async方法,所以请读者保证Node.js版本在7.6.0以上.如果需要在低于7.6的版本中应用Koa的async方法,建议使用Babel hook.示例代码如下: require('babel-register'); // 应用的其余 require 需要被放到hook后面 const app = require('./app'); 1.项目初始化 在安装Koa之前,读者需要先创建项目的目录.新建文件夹koa2-tutorial/用来…
FFmpeg开发实战(五):FFmpeg 抽取音视频的视频数据
如何使用FFmpeg抽取音视频的视频数据,代码如下: // FFmpegTest.cpp : 此文件包含 "main" 函数.程序执行将在此处开始并结束. // #include "pch.h" #include <iostream> #include "AACFormat.h" #define __STDC_CONSTANT_MACROS #define __STDC_FORMAT_MACROS // For extractVide…
FFmpeg开发实战(四):FFmpeg 抽取音视频的音频数据
如何使用FFmpeg抽取音视频的音频数据,代码如下: void adts_header(char *szAdtsHeader, int dataLen); // 使用FFmpeg从视频中抽取音频 void extractAudio() { // 设置日志输出等级 av_log_set_level(AV_LOG_INFO); AVFormatContext *fmt_ctx = NULL; AVPacket pkt; av_register_all(); int ret; int len; ; /…
android 自定义View开发实战(六) 可拖动的GridView
1前言 由于项目需求,需要把项目的主界面采用GridView显示,并且需要根据模块优先级支持拖动图标(砍死产品狗).为此,自定义了一个支持拖拽图标的GridView.效果如下: 具体效果如上图 2 可拖拽的GridView实现 要实现上面的效果有两个难点,第一就是如何创造一个可拖动的View在我们的Activity界面上.第二个就是如何实现两个View的交换 关于第一个:我们可以用WindowManager 来往我们的界面上添加View,这样我们再重写GridView的onTouchEvent(…
Android开发 多媒体提取器MediaExtractor详解_将一个视频文件分离视频与音频
前言 此篇博客讲解MediaExtractor将一个视频文件分离视频与音频,如果你对MediaExtractor还没有一个笼统的概念建议先了解我的另一篇入门博客:https://www.cnblogs.com/guanxinjing/p/11378133.html 直接上代码 已经大量注释了就不另外切分讲解了... 另外注意,实际项目里请将这些放到线程中操作. private void separate() { mFile = new File(getExternalCacheDir(), "d…