ffmpeg解复用FLV文件

news2024/11/30 8:34:45

        该博文是基于:

        ffmpeg:V 5.1.2

        FLV格式是H2.64视频和aac音频复用得到的格式,我们所说的FLV解复用就是将FLV格式的数据的H2.64视频帧和aac音频帧分离。

        分离完成后,音频是纯数据无法播放,需要添加ADTS头,视频帧有的格式需要添加起始码。

        ADTS头结构及代码实现参考:AAC音频格式ADTS头详解

        起始码,pps sps等详细内容参考:H2.64和H2.65编码区别

        解复用文件的一般流程:

// 分配上下文,创建一个AVFormatContext对象,需要avformat_free_context释放空间

ifmt_ctx = avformat_alloc_context(); 

// 打开输入文件,读取媒体文件的头信息,需要调用avformat_close_input关闭句柄

avformat_open_input(&ifmt_ctx, filename, NULL, NULL);

//获取媒体文件的流信息,不会改变文件的逻辑地址

int ret = avformat_find_stream_info(ifmt_ctx, 0);

//找到用户想要寻找的流的信息(音频流,视频流,字幕流等),并获取对应的索引

video_index = av_find_best_stream(ifmt_ctx, AVMEDIA_TYPE_VIDEO, -1, -1, NULL, 0);

//创建并且初始化pkt包

pkt = av_packet_alloc();

av_init_packet(pkt);

//将包数据读取到pkt中

av_read_frame(ifmt_ctx, pkt);

//将包信息送入过滤器进行过滤 获得有效数据

av_bsf_send_packet(bsf_ctx, pkt);

//将包信息从过滤器中读出,输入一个包可能输出多个包,所以需要while一直读取。

av_bsf_receive_packet(bsf_ctx, pkt);

ffmpeg对于文件的数据操作还有一个重要的函数:

int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp,int flags);

        该函数类似于C库函数中文件操作函数seek是类似的,用于移动文件指针的偏移位置,该函数可以实现类似播放器中快进,快退的功能。接口应用参考:av_seek_frame接口详解。

ffmpeg解复用FLV的源码(源码已经过验证):

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/3105.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅谈基于以太网的煤矿电力监控系统的设计与应用

王兰 安科瑞电气股份有限公司 上海嘉定 201801 摘 要:针对传统煤矿电力监控系统通讯网络性能较差、无法实现准确故障定位及报警、不具备数据交互功能等问题,结合分布式网络及GPS授时技术设计了一套基于工业以太网及RS485总线架构的煤矿电力监控系…

第二十三课.扩散模型

目录概述前向过程逆向过程DDPM概述 近几年扩散模型不断涌现,但都来源于一个基础模型:DDPM(Denoising Diffusion Probabilistic Model)。扩散模型本质是生成模型,过去我们常用的生成模型包括GAN和VAE,利用随…

【Linux】冯诺依曼体系结构

目录🌈前言🌷1、冯诺依曼体系结构🌸2、操作系统(Operator System)🌹2.1、概念🍀2.2、如何理解管理🍁3、进程🍂3.1、概念🌈前言 本篇文章进行操作系统中进程的学习!&…

全新一代智慧园区数字孪生解决方案,为园区运营商和集成商赋能!

对于园区运营方而言,园区既要满足使用者的需求,还要面对后期运营过程中大量、繁琐的维护管理工作,同时还要兼顾园区运维效率和管理成本。 随着5G、物联网、云计算、人工智能、大数据等技术的快速发展和应用,园区运维智能化升级已…

自动控制原理 - 2 控制系统的数学模型 节2.7-2.10

2 控制系统的数学模型2.7 结构图的等效变换准则2.8 结构图等效变换的应用2.9 信号流图2.10 梅逊公式 2 控制系统的数学模型 2.7 结构图的等效变换准则 结构图没有直接给出系统输入与输出之间的定量关系。如何得到系统输入输出之间的传递函数,从而便于进一步分析系…

质量管理PPAP说明

PPAP是英文Production Part Approval Process的缩写,中文翻译为生产件批准程序。PPAP是TS16949质量管理体系五大工具之一,用于汽车整车或零部件生产过程的质量管控。 各种质量管理类书籍关于PPAP的介绍有很多,但什么情况下必须提交PPAP&…

Spring Boot + Docker实战

文章目录1.编写DockerFile2.构建镜像3.查看编译的镜像4.启动镜像测试5.创建私有仓库5.1查询registry镜像5.2加载镜像5.3运行镜像容器5.4检查容器6.搭建Registry web6.1首先搜索并拉取镜像6.2运行一个registry web容器6.3验证7.推送镜像到私有仓库8.服务器拉取镜像部署8.1 资源限…

在线电子书阅读小程序,微信小程序电子书阅读,微信小程序小说阅读器毕业设计作品

项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序在线电子书阅读系统,前台用户使用小程序,后台管理使用基JavaMySql技术;通过后台录入电子书信息、书目录信息,用户通过小程序登录,查…

CY3-peg-海藻酸钠|海藻酸钠-荧光染料CY3|alginate-Cyanine3

CY3-peg-海藻酸钠|海藻酸钠-荧光染料CY3|alginate-Cyanine3 FITC/Rhodamine/TRITC/Comarin/Bodipy/ICG/CY3/CY3.5/CY5/CY5.5/CY7/CY7.5标记海藻酸钠 海藻酸钠的结构海藻酸酸是一种线性的阴离子多糖,由β-D-甘露糖醛酸(M)和α-L-葡糖醛酸&am…

【Android】性能监控之帧率检测Tinydancer

git地址 使用 增加依赖 dependencies {debugCompile "com.github.brianPlummer:tinydancer:0.1.2"releaseCompile "com.github.brianPlummer:tinydancer-noop:0.1.2"testCompile "com.github.brianPlummer:tinydancer-noop:0.1.2"}在Applicati…

strcat · strstr | 使用场景与模拟实现

啊我摔倒了..有没有人扶我起来学习.... 👱个人主页:《CGod的个人主页》\color{Darkorange}{《CGod的个人主页》}《CGod的个人主页》交个朋友叭~ 💒个人社区:《编程成神技术交流社区》\color{Darkorange}{《编程成神技术交流社区》…

java计算机毕业设计家教管理系统(附源码、数据库)

java计算机毕业设计家教管理系统(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技…

单调队列/单调栈优化dp

从这几篇博客学习的: DP优化小技巧(单调队列/单调栈) (单调队列优化DP) 代码源每日一题 Div1 选元素(数据加强版) 算法学习笔记(67): 单调栈 牛客多校第九场I (单调栈优化dp/单调栈的常用套路) 一. 单调队列 NC50528…

擎创技术流 | ClickHouse实用工具—ckman教程(1)部署安装

前言: 在数据量日益增长的当下,传统数据库的查询性能已满足不了业务需求。而Clickhouse在OLAP(On-Line Analysis Processing——即一种在线分析处理的,用于数据分析的计算方法)领域的应用,可以助力企业打造…

云原生之快速使用Nacos Spring Cloud

本文主要面向 Spring Cloud 的使用者,通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务注册发现。 通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更。通过 Nacos Server 和 spring-cloud-starter-alibab…

iwebsec靶场 SSRF关卡通关笔记

iwebsec靶场SSRF漏洞通关笔记。 1. 源码分析 由于URL参数无经过严格的过滤,那么攻击者可以构造任意的url利用SSRF漏洞 如上所示,分析可知有SSRF漏洞 2.SSRF漏洞文件读取 (1)访问网址根目录下ssrf文件夹下的1.txt 构造SSRF漏洞访…

云原生 · DevOps | Sonar Qube

啊我摔倒了..有没有人扶我起来学习.... 👱个人主页:《CGod的个人主页》\color{Darkorange}{《CGod的个人主页》}《CGod的个人主页》交个朋友叭~ 💒个人社区:《编程成神技术交流社区》\color{Darkorange}{《编程成神技术交流社区》…

软银集团:从零到一万亿

第一章 公司发展概况 1.1 企业创始人和发展史 软银集团在1981年由孙正义在日本创立并于1994年在日本上市,是一家综合性的风险投资公司,主要致力IT产业的投资,包括网络和电信。 1981-1996年(个人电脑及软件业务时期)…

C语言函数针对训练--递归篇(动画讲解,由易到难递归例题)

CSDN话题挑战赛第2期 参赛话题:学习笔记 前言 💖作者:龟龟不断向前 ✨简介:宁愿做一只不停跑的慢乌龟,也不想当一只三分钟热度的兔子。 👻专栏:C初阶知识点 👻工具分享: …

【FreeRTOS】队列的使用

队列的使用前言创建队列发送数据接收数据查询队列数据个数使用示例创建两个线程配置按键驱动编写按键发送子函数编写按键读取子函数前言 基于 FreeRTOS 的应用程序由一组独立的任务构成——每个任务都是具有独立权限的小程序。这些独立的任务之间很可能会通过相互通信以提供有…