FFmpeg源码分析:av_parser_parse2()解析数据包ffmpeg 4.3添加自定义demuxerffmpeg API基础
    在这里,视频丢帧是指在编码结束到网络传输这个过程中主动丢弃一部分非关键数据,减少视频数据量,减轻网络负载,降低实时视频延迟。一、H.264一些知识    丢弃数据要保证不会引起数据错误,不会造成错误的扩散,在这里先链接一些H.264的知识,参考I、P、N帧的说明,以及H.264视频码流说明。二、关键帧    在
转载 2024-03-20 10:13:20
55阅读
文件夹 1 初衷 2 ts demux的功能介绍 1 初衷     之前打算给dtplayer加入一些亮点功能,最初的想法是:bt下载播放 + hls支持     bt下载因为以来libtorrent库,尽管搞懂了怎样加入,但须要改动libtorrent库来集成,     若将libtorrent集成到代码中,会将代码变得庞大,框架清晰度会变差,随机临时取消了bt功能的开发/         
转载 2015-02-08 20:26:00
200阅读
2评论
简述在前面我们看了vector的实现之后相信对容器有了一定的认识。容器即为存放物件之所,它代表着一块空间。想要直观的了解一个容器,那么看懂他的空间分配策略是一个非常有效的入手方式。接下来我们就来看看STL中的list又是如何实现的吧。list的结构list就是我们常说的链表,说到链表相信大家就很熟悉了。非连续空间、通过指针来连接每一个小空间、插入和删除都是O(1)操作,元素访问效率较低等等。。。
.简介:把上一篇文章中的demuxer加入ffmpeg源码中去
转载 2017-08-09 13:57:00
135阅读
2评论
pr视频剪辑很多朋友都会,不过估计很少有人去关注pr剪辑完成后导出媒体编码格式那么多,到底有什么区别? pr视频剪辑支持导出的媒体格式 先来说说pr软件剪辑完成后都能导出哪些格式的文件,其实文件格式不外乎视频、图片、声音、动画(动图)这四种,别看导出文件格式那么多,其实都可以归纳到这四种文件格式里。需要注意的是pr导出文件格式选择的是编码格式,而不是导出文件后缀,不同的编码格式也许导出的
=====================================================基于最简单的FFmpeg封装工艺的系列文章上市:最简单的基于FFmpeg的封装格式处理:视音频分离器简化版(demuxer-simple)最简单的基于FFmpeg的封装格式处理:视音频分离器(d...
转载 2015-09-15 12:18:00
168阅读
2评论
2023-03-23:音视频解混合(demuxer)为PCM和YUV420P,用go语言编写。答案2023-03-23:大体步骤如下:1.打开媒体文件,并获取音频和视频流。2.对于每个流,找到对应的解码器、创建解码上下文并打开解码器。3.一帧一帧读取压缩的音频或视频数据AVPacket,并调用对应的解码器进行解码。4.对于音频:重采样成16bit 44100 PCM格式,并将数据写入输出文件或缓冲
原创 2023-05-11 15:16:32
2995阅读
2023-03-21:音视频解混合(demuxer)为MP3和H264,用go语言编写。答案2023-03-21:步骤1:安装github.com/moonfdd/ffmpeg-gogo get -u github.com/moonfdd/ffmpeg-go步骤2:导入所需的库接下来,我们需要导入所需的库。这些库包括fmt、os、exec以及FFmpeg库中的libavcodec、libavdev
原创 2023-05-11 15:03:11
3056阅读
[时间:2019-01] [状态:Open] [关键词:字幕,ffmpeg,subtitle,demuxer,源码]0 引言本文重心在于FFmpeg中subtitle demuxer的实现逻辑。 在阅读本文前,笔者希望你对FFmpeg中libavformat的实现有一定了解(可以参考我之前的博文FFmpeg框架分析,最起码知道demuxer的主要接口)。 同时笔者也希望你对主流的字幕格式有一定了解
转载 2024-06-05 15:36:08
26阅读
分离器是把流中的视频和音频数据分离开来,分别进行播放。不同协议的流有不同的分离器,所以首先来看如果打开正确的分离器demuxer。在mplayer.c中,从main开始执行到打开demuxer部分:2956 //============ Open DEMUXERS --- DETECT file type ======================= 2957 current_module="
转载 2024-04-04 19:13:08
97阅读
每个输出的转码过程可以通过下图来描述:​​ffmpeg​​_______ ______________| | | || input | demuxer | encoded data | decoder| file | ---------> | packets | -----+|____
原创 2022-03-19 09:30:32
289阅读
本文会简单介绍一下ffmpeg demuxer、decoder的调用流程。本系列文章基于ffmpeg4.2版本,以ffplay.c调用的ffmpeg API为切入点进行讲解。一、Demuxer部分ffmpeg打开媒体文件(本地/网络)的过程开始于avformat_open_input,该函数定义在avformat.h中:/** * 打开输入流并读取头信息。未打开编解码器。 * 必须使用avfo
转载 2024-10-11 12:12:14
123阅读
AVInputFormat mpegts_demuxer = {     "mpegts",     NULL_IF_CONFIG_SMALL("MPEG-2 transport stream format"),     mpegts_probe,  
原创 2011-05-15 18:42:38
2093阅读
简介打算记录一下基于FFmpeg的封装格式处理方面的样例。包括了视音频分离,复用,封装格式转换。这是第2篇。本文记录一个基于FFmpeg的视音频分离器(Simplest FFmpeg demuxer)。视音频分离器(Demuxer)即是将封装格式数据(比如MKV)中的视频压缩数据(比如H.2)和音频压缩数据(比如AAC)分离开。如图所看到的。在这个过程中并不涉及到编码和解码。本文记录的程序能够
转载 2023-12-12 07:55:32
2阅读
最近在做视频文件的解析,需要将视频文件中封装的视频与音频解析出来,然后用自己的解码器解码。这个过程专业点叫做叫做Demultiplex,视频播放器中负责这部分的叫做Demuxer。我们平时看到的各种格式视频,比如:avi,mp4,mkv等相当于一种容器,里面包含了音视频,字幕的信息以及数据,Demuxer的工作就是解析视频文件,取出里面的音视频或者字幕送到指定的解码器解码。 我刚开始接触的avi
    本文主要讨论rtspdec.c  和 rtpdec.c两个模块    一: 函数增加因为ffmpeg的rtsp没有Pause模块,所以需要手动添加 AVInputFormat ff_rtsp_demuxer = { .name = "rtsp", .long_name = NULL_I
转载 9月前
63阅读
解复用器 (demuxer)的参数 分为 通用部分 跟 私有部分。通用部分是指所有文件格式都有的属性,例如 formatprobesize 是 MP4 跟 FLV都有的属性。 而 export_all 是只有 MP4 自己才有的属性。
原创 精选 2023-02-15 10:11:10
336阅读
一、AVPacket [cpp]view plain copy /** * AVPacket 作为解码器的输入 或 编码器的输出。 * 当作为解码器的输入时,它由demuxer生成,然后传递给解码器 * 当作为编码器的输出时,由编码器生成,然后传递给muxer * 在视频中,AVPacket 只能包
转载 2018-05-09 14:04:00
320阅读
1. 数据结构: AVInputFormat为FFMPEG的解复用器对象,通过调用av_register_all(),FFMPEG所有的解复用器保存在以first_iformat为链表头的链表中,且还有个链表尾指针last_iformat。 以ff_srt_demuxer为例子来看看该结构体的初始化
转载 2017-04-14 11:10:00
151阅读
2评论
  • 1
  • 2
  • 3