ffmpeg专题

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

ffmpeg面向对象-待定

1.常用对象 rtsp拉流第一步都是avformat_open_input,其入参可以看下怎么用: AVFormatContext *fmt_ctx = NULL;result = avformat_open_input(&fmt_ctx, input_filename, NULL, NULL); 其中fmt_ctx 如何分配内存的?如下 int avformat_open_input(

FFmpeg系列-视频解码后保存帧图片为ppm

在正常开发中遇到花屏时怎么处理呢?可以把解码后的数据直接保存成帧图片保存起来,然后直接看图片有没有花屏来排除是否是显示的问题,如果花屏,则代表显示无问题,如果图片中没有花屏,则可以往显示的方向去排查了。 void saveFrame(AVFrame* pFrame, int width, int height, int iFrame){FILE *pFile;char szFilename[

【IPV6从入门到起飞】4-RTMP推流,ffmpeg拉流,纯HTML网页HLS实时直播

【IPV6从入门到起飞】4-RTMP推流,ffmpeg拉流,纯HTML网页HLS实时直播 1 背景2 搭建rtmp服务器2.1 nginx方案搭建2.1.1 windows 配置2.1.2 linux 配置 2.2 Docker方案搭建2.2.1 docker 下载2.2.2 宝塔软件商店下载 3 rtmp推流3.1 EV录屏推流3.2 OBS Studio推流 4 ffmpeg拉流转格式

ffmpeg使用安装使用教程(命令行-Python)

安装教程 https://blog.csdn.net/yuanmomoya/article/details/141992114 ffmpeg转换操作视频十分的占用cpu,会把cpu打满,线上使用的话需要注意下 命令行操作 一、视频转码 将视频从一种格式转换为另一种格式: ffmpeg -i input_video.mp4 output_video.avi 这将把输入的 MP4

ffmpeg安装测试(支持cuda支持SRT)

文章目录 背景安装ffmpeg直接下载可执行文件选择版本选择对应系统版本下载测试Linux下安装 查看支持协议以及编码格式 常见错误缺少 libmvec.so.1LD_LIBRARY_PATH 错误 GPU加速测试SRT服务器搭建下载srs5.0源码解压安装配置启动 SRT推流测试SRT播放测试 背景 在音视频开发测试中,FFmpeg是一个不可或缺的工具,它以其强大的音视频处理

【FFMPEG】Install FFmpeg CUDA gltransition in Ubuntu

因为比较复杂,记录一下自己安装过程,方便后续查找,所有都是在docker环境安装cuda11.7的 **ffmpeg 4.2.2 nv-codec-headers-9.1.23.3 ** 手动下载安装吧 https://github.com/aperim/docker-nvidia-cuda-ffmpeg/blob/v0.1.10/ffmpeg/Dockerfile最好手动一个一个安装,错误跳

使用ffmpeg在视频中绘制矩形区域

由于项目需要对视频中的人脸做定位跟踪, 我先使用了人脸识别算法,对视频中的每个帧识别人脸、通过人脸库比对,最终记录坐标等信息。 然后使用ffmpeg中的 drawbox 滤镜功能,选择性的绘制区域。从而实现人脸定位跟踪 1、drawbox 在FFmpeg中,drawbox 滤镜的 enable 参数用于控制矩形框绘制的条件和时机。通过这个参数,你可以指定在何时或者在哪些帧上启用 dra

本地电脑交叉编译ffmpeg 到 windows on arm64

本地电脑交叉编译ffmpeg 到 windows on arm64 我这里有编译好的win on arm 的 ffmpeg : https://github.com/wmx-github/ffmpeg-wos-arm64-build 使用 llvm-mingw 工具链 https://github.com/mstorsjo/llvm-mingw/releases 前缀 aarch64-w64-

ffmpeg 视频编码及基本知识

理论 H264编码原理(简略) 1. 视频为什么需要进行编码压缩 降低视频数据大小,方便存储和传输 2. 为什么压缩的原始数据采用YUV格式 彩色图像的格式是 RGB 的,但RGB 三个颜色是有相关性的。 采用YUV格式,利用人对图像的感觉的生理特性,对于亮度信息比较敏感,而对于色度信息不太敏感,所以视频编码是将Y分量和UV分量分开来编码的,并且可以减少UV分量,比如我们之前说的YUV420

FFmpeg源码:compute_frame_duration函数分析

一、compute_frame_duration函数的定义 compute_frame_duration函数定义在FFmpeg源码(本文演示用的FFmpeg源码版本为7.0.1)的源文件libavformat/demux.c中: /*** Return the frame duration in seconds. Return 0 if not available.*/static void

ffmpeg h264解码, 屏蔽因为网络丢包等各种原因导致的花屏帧

ffmpeg h264解码, 屏蔽因为网络丢包等各种原因导致的花屏帧  ---->看来问题只能这样解决了,现在还要多测测,防止产生新的问题。目前来看,对现有代码没有影响,花屏的帧直接屏蔽掉了。 思路: 问了下机顶盒方面h264解码的,他们用的是硬件解码,他们做到不花屏的方法就是简单的设置了一个硬件解码提供的接口:设置了错误处理模式。 我想这个错误处理模式肯定对那些错误的帧直接屏

github 工作流自动编译 ffmpeg for windows on arm

github 工作流自动编译 ffmpeg for windows on arm 利用:IsaacShelton/update-existing-release https://github.com/IsaacShelton/update-existing-release 参考:https://github.com/dvhh/ffmpeg-wos-arm64-build 这个是我修改的仓库,

使用FFmpeg的AVFilter转换YUV到RGB

AVFilter 是 FFmpeg 库 libavfilter 的核心组件,提供了一套强大的音视频处理框架,用于对音视频流进行复杂的过滤、转换和效果处理。通过 AVFilter,开发者可以构建自定义的滤镜图(filter graph),实现各种音视频处理任务,如颜色空间转换、缩放、裁剪、特效添加等。 以下是对 AVFilter 的详细介绍,包括其架构、关键概念、使用方法以及示例代码。 1. A

FFmpeg源码:avcodec_descriptor_get函数分析

一、avcodec_descriptor_get函数的声明 avcodec_descriptor_get函数声明在FFmpeg源码(本文演示用的FFmpeg源码版本为7.0.1)的头文件libavcodec/codec_desc.h中: /*** @return descriptor for given codec ID or NULL if no descriptor exists.*/c

基于mediamtx+ffmpeg实现视频推流,基于python-deffcode实现视频拉流

软件依赖:mediamtx、ffmpeg python包依赖:deffcode mediamtx下载地址:https://github.com/bluenviron/mediamtx/releases ffmeg下载地址:https://ffmpeg.org/download.html deffcode安装命令:pip install deffcode 1、mediamtx下载安装 Media

Centos7安装FFmpeg详细步骤(已验证成功)

最近我们需要使用FFmpeg来合成视频功能,这就需要用到服务器必须安装FFmpeg了。         FFmpeg 是一款功能强大的跨平台命令行工具,可以处理各种音频和视频文件,包括转换视频和音频格式、剪辑、合并视频和音频、提取音频、添加字幕、添加水印、调整视频大小、旋转视频、添加音频效果、录制、转换、播放网络流媒体、生成视频截图、创建 GIF 动画以及分析视频和音频属性等。

Windows使用ffmpeg获取麦克风数据

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装MSYS2二、开始配置三、测试代码四、缺陷总结 前言 最近突发奇想,既然ffmpeg那么好用,为什么不能拿到Windows上来用呢?由于ffmpeg官方提供的是二进制文件,不是开发库。之前尝试过很多次移植都失败了,当我准备放弃的时候,突然一次意外发现让我重燃希望。所以ffmpeg在

【ffmpeg】转换音频格式

在音频文件所在目录启动终端输入以下 ffmpeg -y -i original.aac target.mp3 -y 如果输出文件已经存在,则覆盖它而不询问。 执行完毕后在当前文件夹目录下生成目标文件

音视频入门基础:WAV专题(8)——FFmpeg源码中计算WAV音频文件AVStream的time_base的实现

一、引言 本文讲解FFmpeg源码对WAV音频文件进行解复用(解封装)时,其AVStream的time_base是怎样被计算出来的。 二、FFmpeg源码中计算WAV音频文件AVStream的time_base的实现 从《音视频入门基础:WAV专题(5)——FFmpeg源码中解码WAV Header的实现》中可以知道,FFmpeg对WAV音频文件进行解复用(解封装)时,其源码内部

FFmpeg 基本用法 原帖地址:http://derekzhan.iteye.com/blog/1989274

主要解决的问题 1.FFmpeg的转码流程是什么? 2.常见的视频格式包含哪些内容吗? 3.如何把这些内容从视频文件中抽取出来? 4.如何从一种格式转换为另一种格式? 5.如何放大和缩小视频? 6.如何旋转,翻转,填充,裁剪,模糊,锐化视频? 7.如何给视频加logo,删除logo? 8.如何给视频加文本,动态文本? 9.如何处理图片? 10.如何录像,添加动态logo,截图,马赛克视频? 第一

使用ffmpeg的c++库读取视频流和其中的SEI数据

使用ffmpeg读取视频流和其中的SEI数据(未完待续) FFmpeg是一个多媒体软件框架,支持多种新旧视频编码格式,提供解码、编码、 转码、多路复用、解复用、流式传输、过滤和播放等功能。其包含: C++库libavcodec、libavutil、libavformat、libavfilter、libavdevice、 libswscale和libswresample基于库构建的命令行工具ff

FFmpeg源码:append_packet_chunked、av_get_packet函数分析

================================================================= AVPacket结构体和其相关的函数分析: FFmpeg存放压缩后的音视频数据的结构体:AVPacket简介 FFmpeg源码:av_init_packet、get_packet_defaults、av_packet_alloc函数分析 FFmpeg源码:av

ffmpeg音频编码

音视频播放的流程 根据我之前的文章 我们已经从解复用,解码得到原始数据,现在我们逆向,将frame转化packet。也就是原始数据转化为压缩后的数据文件。 介绍 PCM样本格式 PCM(Pulse Code Modulation,脉冲编码调制)⾳频数据是未经压缩的⾳频采样数据裸流,它是由模拟信 号经过采样、量化、编码转换成的标准数字⾳频数据。 描述PCM数据的6个参数: 1.

编译可执行命令的FFmpeg

上一篇讲到了使用FFmpeg生成视频封面图,其实也可以直接使用FFmpeg相关命令截取一帧的图像数据保存到本地,然后加载到ImageView上,有时候使用命令确实比写代码更加简单和使人轻松一点,所以这一篇是讲解如何导入FFmpeg相关源码 然后如何执行命令行工具的博客,但是其实这只是个Demo而已,因为有很多细节需要处理,推荐直接使用开源库。 导入源码 从FFmpeg源码中导入cmdutils

编译FFmpeg动态库

编译FFmpeg动态库 环境 macOS High SierraFFmpeg 4.3android-ndk-r21b 编译so库 下载FFmpeg4.3源代码,进入源码目录创建build_android.sh脚本,ffmpeg从4.0起新增了target-os=android,所以不用再修改configure文件。 注意: ndk-17以前内置的编译器是gcc,而新版的ndk已经用c