
FFmpeg从入门到入土
FFmpeg从入门到入土
༄yi笑奈何
一个腐败糜烂的环境,永远也无法孕育出真正的文明
展开
-
【FFMPEG应用篇】MP4转YUV存储
【FFMPEG应用篇】MP4转YUV存储。原创 2024-05-24 10:43:23 · 696 阅读 · 0 评论 -
【FFMPEG应用篇】基于FFmpeg的Windows摄像头采集到编码H264
Windows摄像头采集编码原创 2024-01-09 17:10:14 · 825 阅读 · 0 评论 -
【FFMPEG应用篇】基于FFmpeg的转码应用(FLV MP4)
转码原创 2024-01-08 16:00:37 · 838 阅读 · 0 评论 -
【FFMPEG应用篇】使用FFmpeg的常见问题
FFmpeg原创 2023-08-10 21:51:23 · 6161 阅读 · 0 评论 -
【FFMPEG应用篇】基于FFmpeg的封装格式转换
/** 一笑奈何* cn-yixiaonaihe.blog.youkuaiyun.com*/#include <iostream>#include <thread>extern "C" {#include "libavformat/avformat.h"#include "libavcodec/avcodec.h"#include "libswscale/swscale.h"#include "libswresample/swresample.h"}using.原创 2020-10-29 12:00:23 · 416 阅读 · 0 评论 -
【FFMPEG应用篇】基于FFmpeg的PCM和RGB数据统一封装
项目采用工程模式进行构造。技术解决难点:1.编码后的PTS时间一定要赋值。2.音视频封装同步问题,其中涉及到PTS同步问题,例如视频25PTS/s 音频43PTS/s(44100采样率/1024每帧),音频要慢于视频所以这种情况下要进行PTS同步计算处理.主要代码如下XVideoWriter.h#pragma once#include<string>class AVPacket;enum XSAMPLEFMT{ X_S16 = 1, X_FLATP = 8}.原创 2020-11-02 12:58:03 · 382 阅读 · 3 评论 -
【FFMPEG应用篇】基于FFmpeg的RGB格式封装MOV文件
/** 一笑奈何* cn-yixiaonaihe.blog.youkuaiyun.com*/#include <iostream>#include <thread>extern "C" {#include "libavformat/avformat.h"#include "libavcodec/avcodec.h"#include "libswscale/swscale.h"#include "libswresample/swresample.h"}using.原创 2020-11-01 13:14:57 · 415 阅读 · 0 评论 -
【FFMPEG应用篇】基于C++使用ffmpeg和QT开发播放器
#include <iostream>#include <thread>extern "C" {#include "libavformat/avformat.h"#include "libavcodec/avcodec.h"#include "libswscale/swscale.h"#include "libswresample/swresample.h"}using namespace std;static double r2d(AVRational r).原创 2020-06-17 11:51:28 · 726 阅读 · 0 评论 -
【FFMPEG应用篇】保存YUV420数据到本地
void SaveYUV420(AVFrame* Frameyuv){ //********************** 保存YUV数据 FILE *yuv_file = fopen("yuv_file", "ab"); if (yuv_file) { qDebug() << "OK-----------"; } char* buf = new char[Frameyuv->height * Frameyuv->width * 3 / 2]; memset.原创 2020-08-02 16:37:25 · 1296 阅读 · 0 评论 -
【FFMPEG应用篇】使用FFMPEG解析H264编码为YUV格式
头文件#pragma once#ifndef _VIDEO_DECODING_HEADER_#define _VIDEO_DECODING_HEADER_#define INBUF_SIZE 4096#define AUDIO_INBUF_SIZE 20480#define AUDIO_REFILL_THRESH 4096extern "C"{#include "lib...原创 2020-03-20 15:46:53 · 1255 阅读 · 0 评论 -
【FFMPEG应用篇】基于FFmpeg+QT 图片编码
#pragma once#include <QtWidgets/QWidget>#include "ui_ImageEn.h"#include<QDebug>#include<QByteArray>#include<QPainter>#include<QTimer>#include<QDateTime>extern "C"{#include"libavutil\imgutils.h"#include"liba.原创 2020-08-02 20:24:45 · 507 阅读 · 0 评论 -
【FFMPEG应用篇】基于FFmpeg的PCM数据编码为AAC
/** 一笑奈何* cn-yixiaonaihe.blog.youkuaiyun.com*/#include <iostream>#include <thread>extern "C" {#include "libavformat/avformat.h"#include "libavcodec/avcodec.h"#include "libswscale/swscale.h"#include "libswresample/swresample.h"}using.原创 2020-11-01 17:28:55 · 584 阅读 · 0 评论 -
【FFMPEG应用篇】yuv图片编码为h264文件
【代码】【FFMPEG应用篇】(一)yuv图片编码h264。原创 2022-11-14 15:56:50 · 894 阅读 · 0 评论 -
【FFMPEG中PTS与DTS统一转换为毫秒】
对于PTS和DTS 是两个非常重要的参数,在音视频同步时是必要的,为了方便使用,将二者统一为毫秒级别static double r2d(AVRational r){ return r.den == 0 ? 0 : (double)r.num / (double)r.den;}//转换为毫秒,方便做同步AVPacket->pts * (r2d(ic->streams[pkt->stream_index]->time_base) * 1000) ...原创 2020-11-18 11:10:24 · 1309 阅读 · 0 评论 -
Ubuntu下如何正确安装FFmpeg
启动管理员权限suLinux 安装GL库 ,root身份权限运行sudo apt-get install libgl1-mesa-dev安装失败删除rm /var/lib/dpkg/lock再安装apt-get inastall g++ make安装gitsudo apt-get install git下载源码git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg安装FFMPEG依赖包进入FFMEPG源码文件目录cd .原创 2020-07-11 13:19:46 · 263 阅读 · 0 评论 -
【FFMPEG源码终极解析】int av_read_frame(AVFormatContext *s, AVPacket *pkt)
int av_read_frame(AVFormatContext *s, AVPacket *pkt){ const int genpts = s->flags & AVFMT_FLAG_GENPTS; int eof = 0; int ret; AVStream *st; if (!genpts) { ret = s->internal->packet_buffer ? ff_packet.原创 2020-09-13 11:06:37 · 479 阅读 · 1 评论 -
【FFMPEG源码终极解析】void av_packet_unref(AVPacket *pkt)
av_packet_unref该接口使用了如下调用,该接口主要作用是清理AVPacket中的所有空间数据,清理完毕后进行初始化操作,并且将 data 与 size 置为0,方便下次调用。void av_packet_unref(AVPacket *pkt){ av_packet_free_side_data(pkt); av_buffer_unref(&pkt->buf); av_init_packet(pkt); pkt->data = NU原创 2020-09-13 10:24:54 · 3044 阅读 · 0 评论 -
【FFMPEG源码终极解析】 av_packet_alloc 与 av_packet_free
关于void *av_malloc(size_t size)可以参考av_mallocav_packet_alloc实际是分配AVPacket以后,调用av_init_packet对AVPacket的成员变量进行初始化赋值。AVPacket *av_packet_alloc(void){ AVPacket *pkt = av_mallocz(sizeof(AVPacket)); if (!pkt) return pkt; av_init_packet原创 2020-09-13 10:06:57 · 2600 阅读 · 0 评论 -
【FFMPEG源码终极解析】 av_malloc 与 av_free
void *av_malloc(size_t size){ void *ptr = NULL; //max_aloc_size Ϊ 2147483647 if (size > max_alloc_size) return NULL;#if HAVE_POSIX_MEMALIGN if (size) //OS X on SDK 10.6 has a broken posix_memalign implementation if (posix_.原创 2020-09-13 10:03:47 · 2059 阅读 · 0 评论 -
FFmpeg NDK跨平台交叉编译
1.首先选择Windows平台安装好环境windows搭建gcc开发环境(msys2)2.创建一个通用脚本原创 2020-09-11 12:44:03 · 329 阅读 · 0 评论 -
ffmpeg源码下载和安卓库编译编译指令
apt-get install -y makeapt-get install -y unzipcd /rootwget https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zipwget http://ffmpeg.org/releases/ffmpeg-3.4.tar.bz2unzip android-ndk-r14b-linux-x86_64.ziptar -xvf ffmpeg-3.4.tar.bz.原创 2020-09-10 15:16:06 · 483 阅读 · 0 评论 -
FFmpeg options
options原创 2020-08-29 14:55:52 · 585 阅读 · 0 评论 -
【FFMPEG源码终极解析】 avformat_open_input (一)
avformat_open_input打开媒体函数,先上全部源码。然后逐语句分析。int avformat_open_input(AVFormatContext **ps, const char *filename, ff_const59 AVInputFormat *fmt, AVDictionary **options){ //第一部分解析 AVFormatContext *s = *ps; int i, ret =..原创 2020-08-29 12:09:07 · 1227 阅读 · 0 评论