这是我大四的一个专业选修课的结课作业,写了点关于视频编码的相关知识点的汇总,由于本身也不是做这个方向的,水平不够,所有内容基本都来自于书籍、博客和课上知识。我没有去查看和实现源代码,也没有去看官方的标准手册,所以有些地方肯定说得有点问题。发这篇博客的原因是,希望能够给一些不知道视频编码为何物的人参考参考,大致的思路应该还是可以看看的。内容有什么不对的地方可以在底下评论,谢谢!              
                
         
            
            
            
            花时间研究了一些ffmpeg的nvenc,本来想我已经有了cuvid,然后又搞出来了nvenc,应该可以做个全套的英伟达的转码了,没想到ffmpeg官网下载的动态库没有cuvid,windows上编译c...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-06-15 07:55:00
                            
                                1300阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            NAL 的主要目标是实现网络环境的抽象,它将VCL编码产生的数据包装成为一系列的 NAL units,以提供统一的接口适应不同的系统环境            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-05-28 20:30:14
                            
                                239阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            为何需要自行编译opencv451与opencv_contrib451? 因为在3.0之后版本的Opencv对Sift、Sufer等新算法没有提供直接编译好的动态库来加载使用,因此必须自己编译。这是因为Sift、Sufer算法专利现在是属于哥伦比亚大学,因此opencv对这部分内容及“所谓的”不稳定模块全都放到opencv_contrib中。且只在它的Github中能够找到,opencv的官网上是            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-28 20:53:04
                            
                                127阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            音频同步(同步的三种方式)上一节我们做了将视频同步到音频时钟(这个好,因为音频时间是线性增长的),这一节我们反过来,将音频同步到视频。首先,我们要实现一个视频时钟来跟踪视频线程播放了多久,并将音频同步过来。后面我们会看看如何将音频和视频都同步到外部时钟。实现视频时钟与音频时钟类似,我们现在要实现一个视频时钟:即一个内部的值来记录视频已经播放的时间。首先,你可能会认为就是简单地根据被显示的最后一帧的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-28 23:15:14
                            
                                85阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言概念简要众所周知,我们平时在网络上收看视频会经历视频编码及解码的过程.编码是为了减小视频网络传输消耗的资源,解码是为了将压缩后的视频恢复成可以观看的格式,目前编码大多采用的是H.264规格.H.264是一种广为认可的编码格式, 包含由一系列NALU组成的码流,这些NALU承载着SPS,PPS,I Frame,P Frame,B Frame信息,其组成如下图图一(图源数据来自WWDC).其中SP            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-28 13:46:49
                            
                                192阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录音频解码流程解码音频为pcm使用AudioTrack播放音频资料收获上一篇我们了解了FFmpeg解码流程、关键函数和结构体,实现了视频解码器。这篇我们来实现下音频的解码器。解码流程和视频的基本一致。FFmpeg解码的音频裸数据是PCM格式,android上播放PCM音频数据可以通过AudioTrack和OpenSL ES来实现。下面我们下来看下解码的流程一、音频解码流程和上一篇的视频解码流程基            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-28 10:06:08
                            
                                197阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1. 媒体格式的介绍  文件格式:特殊的文件类型,用来存储音频或视频数据。一些类型可以用来存储多条流数据,这些叫做容器。视频文件格式一般包含视频流和音频流。  媒体容器:特殊的文件格式,用来存储多条流数据和相关元数据的。音频和视频是可以被编码和解码的,容器可以将这些音频流和视频流存储在一个文件里面。        有些容器只能存储音频,比如AIFF、WAV、            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-03 06:25:53
                            
                                73阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            本系列文章通过拆解采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并实现 Demo 来向大家介绍如何在 iOS/Android 平台上手音视频开发。这里是第十二篇:iOS 视频解码 Demo。这个 Demo 里包含以下内容:1)实现一个视频解封装模块;2)实现一个视频解码模块;3)串联视频解封装和解码模块,将解封装的 H.264/H.265 数据输入给解码模块进行解码,并存储解码后的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-29 21:28:32
                            
                                81阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在iOS开发中,合成视频是一项常见的需求,而使用FFmpeg库将极大地简化这一过程。本文将详细记录如何在iOS应用中集成FFmpeg,并实现视频合成的功能。
## 环境准备
### 软硬件要求
- **软件**: Xcode(建议版本:12.0及以上)、CocoaPods(建议版本:1.10.0及以上)
- **硬件**: macOS 10.15及以上,至少4GB内存,10GB可用硬盘空间            
                
         
            
            
            
            值得多看几遍的文章~~~            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2022-10-13 16:20:19
                            
                                555阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、常用操作1.获取视频的信息ffmpeg -i video.MP44.为视频重新编码以适合在iPod/iPhone上播放ffmpeg -i source_video.MP4 input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180            
                
         
            
            
            
            一般编码流程: 1、创建编码器上下文并设置编码器参数(编码格式、时间基、编码器类型、最大最小质量、宽高等等) 2、寻找编码器 3、打开编码器 3、获取原始YUV或RGB数据 4、编码:avcodec_send_frame()、avcodec_receive_packet() 5、输出:保存为文件或封装为其他格式(mp4、flv、avi等)本程序(将YUV文件编码为H264)流程: 1、创建输出码流            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-10 22:57:22
                            
                                55阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录  视频编码的流程:1. av_register_all()2. avformat_alloc_output_context2()3. avio_open()4. avformat_new_stream()5            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2022-06-14 09:43:09
                            
                                862阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # iOS音视频编码打包推流FFmpeg
## 前言
在iOS应用开发中,有时会遇到需要对音视频进行编码、打包和推流的需求。FFmpeg是一个开源的音视频处理库,可以在iOS平台上实现音视频编码、打包和推流的功能。本文将介绍如何使用FFmpeg在iOS中实现音视频编码、打包和推流的功能,并提供相关代码示例。
## FFmpeg简介
FFmpeg是一个跨平台的音视频处理库,支持多种音视频编码            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-07-29 05:33:10
                            
                                190阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ffmpeg项目巨大,本文针对 ffmpeg学习(3)编码、解码的流程 介绍中解码部分,实现了一个最简单的视频解码器,之后再对解码后的图像像素数据进行处理,例如图像变换、保存为像素数据文件等。先给出基本的流程,如下图。 流程图中使用的函数,可以通过其名称了解其用处,网上参考较多,也可以直接看api文档。 其中关于结构体AVFrame和AVPackt的介绍参看文章:ffmpeg学习 结构体分析AVF            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-02 08:44:31
                            
                                130阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
              硬编码相对于软编码来说,使用非CPU进行编码,如显卡GPU、专用的DSP、FPGA、ASIC芯片等,性能高,对CPU没有压力,但是对其他硬件要求较高(如GPU等)。  在iOS8之后,苹果开放了接口,并且封装了VideoToolBox&AudioToolbox两个框架,分别用于对视频&音频进行硬编码,音频编码放在后面做总结,这次主要总结VideoToolBox。  Demo的G            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-20 09:55:50
                            
                                201阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            硬编码的优点提高编码性能(使用CPU的使用率大大降低,倾向使用GPU)增加编码效率(将编码一帧的时间缩短)延长电量使用(耗电量大大降低)VideoToolBox框架的流程创建session设置编码相关参数开始编码循环获取采集数据获取编码后数据将数据写入H264文件编码的输入和输出         如图所示,左边的三帧视频帧是发送給编码器之前的数据,开发者必须将原始图像数据封装为CVPixelBuu            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-07 22:09:07
                            
                                86阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            ffmpeg最近有工作需求用到ffmpeg,分享下。包括一些编码的基础知识,ffmpeg视频解码基础,还有GPU解码的部分。
属于科普工作,并不深入,记录了踩过的一些坑,希望有用
代码部分参考自 同事***(打码)代码,谢谢大神!FFmpeg是一种功能强大的常用的视频/音频处理开源框架。支持几乎所有主流格式音视频的编解码,并能进行拼接等操作。基础知识视频格式:mp4, avi, mkv等,称之为            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-11 16:13:27
                            
                                588阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # 如何在iOS中使用ffmpeg转视频
## 一、整体流程
### 1. 下载ffmpeg库
### 2. 集成ffmpeg库到iOS项目
### 3. 使用ffmpeg进行视频转换
## 二、具体步骤
| 步骤 | 操作 |
|---|---|
| 1 | 下载ffmpeg库 |
| 2 | 解压压缩包,得到ffmpeg库文件 |
| 3 | 将ffmpeg库添加到iOS项目中 |
|            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-06-04 07:13:27
                            
                                126阅读