ffmpeg
lpcarl
这个作者很懒,什么都没留下…
展开
-
[H264]x264_encoder_headers函数
x264_encoder_headersH264中我们所说的帧是不包含全部的视频的数据的,它是由网络数据NAL和视频数据VCL组成。这个函数主要用来生成一个帧的NAL数据层,这个函数主要是输出SPS、PPS、SEI等数据封装。具体来看代码int x264_encoder_headers( x264_t *h, x264_nal_t **pp_nal, int *pi_nal )...原创 2024-10-19 23:14:32 · 128 阅读 · 0 评论 -
H264原理与源码阅读、实践心得
DCT与近似DCT变换原理DCT的目的在于将高频、低频图片信息分离,这样就能舍弃高频分量,达到压缩的目的。DCT的重点在于矩阵的运算,运算的过程如下但是这种方式涉及三角函数计算,因此为了计算方便,通过近似DCT变化来简化运算。 Python实现#import numpy as np###待压缩图像块X=np.array(([5,11,8...原创 2018-07-23 16:20:47 · 289 阅读 · 0 评论 -
【ffmpeg-libav-tutorial】ffmpeg的hello world
FFmpeg的hello worldffmpeg的hello world并不是打印hello world,而是打印视频的信息。比如他的容器格式、长度、分辨率、音频通道,最后我们将会解码一些帧并将他们保存为图片ffmpeg的架构首先先了解一下ffmpeg的架构以及他的组件如何与其他组件进行通信,如图是视频解码的过程:首先,我们需要将视频文件加载到AVFormatContext结构体,实际上...原创 2019-03-05 10:42:17 · 626 阅读 · 0 评论 -
【ffmpeg-libav-tutorial】ffmpeg中同步音视频流
音视频同步在转码之前,我门先来谈谈时间。换句话说播放器是如何实现音视频同步的,如何知道在什么时间播放一帧。上一个例子中,我门保存了一些帧。我们希望播放器以一定的节奏打印每个帧而不至于播放得太快或者太慢。因此我们需要引入一些机制来使播放流畅。为了达到这个目的,每个帧都有一个显示时间(pts),它是个递增的数据,并且是以一个时间基为基准,该时间基是一个有效数(他的分母被称为时间尺度)可以被帧率...原创 2019-03-05 16:00:02 · 444 阅读 · 0 评论 -
【ffmpeg-libav-tutorial】介绍——视频、音频、编码器、容器、使用方法
介绍——视频、音频、编码器、容器介绍视频——你所看到的音频编码器——数据压缩容器FFmpeg-命令行FFmpeg命令行工具介绍视频——你所看到的如果你有一序列的图片,并且以一个给定的频率来改变他们出现的时间(比如24张图片每秒),那么你就能看到一个运动的感觉。换句话来说,视频的基本思想就是:以一定的速率改变一系列图片的出现。音频虽然静音视频已经能够表达各种各样的感受,但是往视频里添加声...原创 2019-03-04 21:00:47 · 794 阅读 · 0 评论