首页
学习
活动
专区
圈层
工具
发布

【FFmpeg】FFmpeg 相关术语简介 ( 容器 | 媒体流 | 数据帧 | 数据包 | 编解码器 | 复用 | 解复用 )

, 是特定的视频文件 , 如 mp4 , mkv , flv 等格式的音视频文件 ; 容器的作用 : 容器中可以存放 音频 , 视频 , 字幕流 等信息 , 将这些信息整合在一起 , 按照特定规则放置在容器文件中..., 使用 MediaInfo 打开一个 mp4 格式的视频文件 , 在 " 容器格式和一般信息 " 一栏中 , 可以看到该 mp4 容器文件中包含了 1 个 AVC 视频流 , 1 个 AAC..., 将视频帧编码成 关键帧 , 非关键帧 , 音频流一般是 AAC 编码格式进行压缩 ; 媒体流如果是压缩的 , 在播放时 , 先使用解码器解码 , 然后再播放 ; 生成文件时需要使用编码器 , 编码后存储到文件中...: 将 数据帧 压缩后就是 数据包 , 数据帧是未压缩的原始数据 , 数据包时压缩后的数据 ; 生成容器文件时 , 压缩数据 , 将数据帧 编码压缩 成 数据包 ; 播放容器文件时 , 解压数据 ,...将数据包 解码展开 成 数据帧 ; 视频编码过程 : YUV 格式的图像 -> H.264 编码器编码 -> H.264 视频帧 视频解码过程 : H.264 视频帧 -> H.264 解码器解码 -

2.9K10

给Android工程师的音视频开发学习指南

AudioRecord 是一个比较偏底层的 API,它可以获取到一帧帧 PCM 数据,之后可以对这些数据进行处理。...而 MediaRecorder 是基于 AudioRecorder 的 API (最终还是会创建AudioRecord 用来与 AudioFlinger 进行交互) ,它可以直接将采集到的音频数据转化为执行的编码格式...和音频一样,也有高层和低层的 API,高层就是 Camera 和 MediaRecorder,可以快速实现编码,低层就是直接使用 Camera,然后将采集的数据进行滤镜、降噪等前处理,处理完成后由 MediaCodec...音视频混合 以合成 MP4 视频为例: 整体来看,合成的 MP4 文件,视频部分为 H.264 编码格式的数据,音频部分为 AAC 编码格式的数据。...通过 MediaMuxer 提供的接口-writeSampleData(),将 H.264 和 AAC 数据分别同时写入到 MP4 文件。 6.

1.7K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    短视频 SDK 开发 (一) 开发一款短视频 SDK 需要具备哪些知识?

    :H.264视频码流解析 雷神-视音频数据处理入门:AAC音频码流解析 音视频学习 (七) 掌握音频基础知识并使用 AudioTrack、OpenSL ES 渲染 PCM 数据 音视频学习 (八) 掌握视频基础知识并使用...FFmpeg API 实现音频 AAC 软编解码 ffmpeg_video_encode_decode FFmpeg API 实现视频 H264 软编解码 lame_ffmpeg_mp3_encode_decode...MP3 编解码 JavaAVPlayer Java API 实现音视频播放(mp3/mp4/pcm/yuv) NativeAVPlayer Native 端实现音视频播放(PCM/YUV) ffmpeg_muxer...,最后将这些 MP4 的文件合并为一个 MP4 文件 「水印:」 拿着上一个视频处理的 纹理 ID ,在这基础上渲染一个 BItmap 即可 「背景音混音:」 可以参考如下实现代码 /** * 参考地址...jinq0123/archive/2007/10/31/35615.aspx * 能量值实现:https://www.jianshu.com/p/d3745dd23056 * 实现原理: * 其实音频混音的核心原理就是将两个音频的原始

    2.4K30

    音视频八股文(3)--ffmpeg常见命令(2)

    在第一个命令中,我们保留了原始编码格式,并直接将视频流复制到输出文件中;而在第二个命令中,我们强制将视频流转换为 H.264 编码格式。同时,在第二个命令中还省略了音频部分,使用了 -an 参数。...在第一个命令中,我们保留了原始编码格式,并直接将音频流复制到输出文件中;而在第二个命令中,我们强制将音频流转换为 MP3 编码格式。同时,在第二个命令中还省略了视频部分,使用了 -vn 参数。...12-ffmpeg命令转封装 保持编码格式 将视频文件 test.mp4 中的视频数据和音频数据分别以原始编码格式拷贝到输出文件 test_copy.ts 中: ffmpeg -i test.mp4 -...-i test.mp4 -b:v 400k -c:a copy output_bv.mkv 这里我们使用了 -b:v 参数指定输出视频流的比特率为 400kpbs,并使用 -c:a copy 参数直接将原始音频流拷贝到输出文件中...修改音频码率 将视频文件 test.mp4 中的音频码率限制为 192kpbs,并重新编码音频数据,将编码后的音频数据和原始视频流混合保存为 MP4 文件 output_ba.mp4: ffmpeg -

    1.9K121

    音视频八股文(3)--ffmpeg常见命令(2)

    在第一个命令中,我们保留了原始编码格式,并直接将视频流复制到输出文件中;而在第二个命令中,我们强制将视频流转换为 H.264 编码格式。...在第一个命令中,我们保留了原始编码格式,并直接将音频流复制到输出文件中;而在第二个命令中,我们强制将音频流转换为 MP3 编码格式。同时,在第二个命令中还省略了视频部分,使用了 `-vn` 参数。...12-ffmpeg命令转封装 保持编码格式 * 将视频文件 `test.mp4` 中的视频数据和音频数据分别以原始编码格式拷贝到输出文件 `test_copy.ts` 中: ``` ffmpeg -i...,并使用 `-c:a copy` 参数直接将原始音频流拷贝到输出文件中。...修改音频码率 * 将视频文件 `test.mp4` 中的音频码率限制为 192kpbs,并重新编码音频数据,将编码后的音频数据和原始视频流混合保存为 MP4 文件 `output_ba.mp4`: `

    2.6K10

    C++与音视频处理:处理音频和视频数据的编码和解码

    本文将介绍C++中常用的音频和视频编码解码技术,以及相关的库和工具。音频编码和解码音频编码是将原始音频数据压缩为较小的数据表示形式的过程,而音频解码是将压缩的音频数据解压缩为原始音频数据的过程。...libmp3lame: libmp3lame是一款MP3音频编码库,可用于将原始音频数据编码为MP3格式。它提供了一组简单的API来进行编码和解码操作。...视频编码和解码视频编码是将原始视频数据压缩为较小的数据表示形式的过程,视频解码是将压缩的视频数据解压缩为原始视频数据的过程。...常用视频编码格式H.264: H.264是一种广泛使用的视频编码格式,可提供较高的压缩比和良好的视频质量。x264是一个流行的H.264编码库,提供了C++接口以便于使用。...FFmpeg库将输入的WAV音频文件解码为PCM数据,并将PCM数据写入输出文件"output.pcm"中。

    1.7K10

    手把手帮你视频转文本(1-视频转音频)

    本系列将介绍如何一步步实现将mp4视频中的语音对话,自动转换为文本,并输出到word文档中。这里第一篇,先完成视频转音频处理。...总体技术架构 下图是整体转换流程: 先将mp4视频文件,通过ffmpeg工具库,批量转换为pcm音频文件(语音识别服务仅支持该格式) 基于百度云的技术,将pcm文件上传到百度对象存储BOS中,并将日志等记录到本地...pcm文件上传完毕后,调用免费的语音识别(录音转写)服务,创建离线录音转写任务。 查询转写成功的任务,并将相关转写结果存储到本地mysql库中。...将截取后的mp4文件,转换为pcm文件。 基于ffplay验证pcm可播放情况。...; } 至此,读取mp4文件,转换为pcm文件并剔除片头和片尾,就基本完成了,接下来将为你介绍如何基于百度云SDK和API实现语音转录。

    2.9K00

    Android FFmpeg系列02--音视频基础

    本文主要分为音视频的一些基础概念和FFmpeg相关的基础概念两个部分 音视频基础 封装/解封装 封装:将视频码流/音频码流按照一定的格式存储在容器(文件)中,常见的封装格式为MP4、FLV、MKV等...解封装:封装的逆过程,将音视频文件分离为音频、视频等码流的过程,比如将MP4解封装为H.264和AAC 编码/解码 编码:将原始的视频数据(RGB、YUV等)压缩为视频码流,音频数据(PCM等)压缩为音频码流的过程叫做编码...常见的视频编码标准有H.263,H.264,MPEG2等,音频编码标准AAC,MP3,AC-3等 解码:编码的逆过程,将音\视频压缩编码的数据转为原始数据 软编(解)/硬编(解) 软编(解):使用CPU...Android FFmpeg系列01--编译与集成 2. Ne10的编译与使用 3. 如何使用OpenGL渲染YUV数据 4. Android中如何使用OpenGL播放视频 5....如何使用MediaCodec解码音视频

    1.4K10

    一张图概括淘宝直播背后的前端技术 | 赠送多媒体前端手册

    1.1.2 视频容器格式 容器格式相信大家经常见到: MP4、AVI、FLV、TS/M3U8、WebM、OGV、MOV... 1.1.2 视频编码格式 H.264 目前最流行的编码格式。...压缩率 原始音频数据与通过PCM等压缩编码技术压缩后的数据大小的比率 1.2.2 音频容器格式 音频格式也比较常见:WAV、AIFF、AMR、MP3、Ogg... 1.2.3 音频编码格式 PCM 脉冲编码调制...3.3 demux(解码) 从上层解封装中,我们了解到,在解封装之后,需要对分离出来的原始码流进行解码,生成音、视频播放器可播放的数据。...在视频编码方面,OBS可以使用X264自由软件程序库、Intel Quick Sync Video、Nvidia NVENC和AMD视频编码引擎将视频流编码为H.264/MPEG-4 AVC和H.265...音频可以使用MP3或AAC编解码器进行编码。进阶用户可以选择使用Libavcodec/libavformat中的任何编解码器和容器,也可以将流输出到自定义FFmpeg URL。

    3.4K50

    FFmpeg常用命令行讲解及实战一

    注意可能一些格式是不支持精确定位的,所以 ffmpeg 可能是定位到最接近 position(在之前)的可定位点。...,无字幕流 注意:这里没有字幕流的原因是我们使用的是 -vf 视频过滤器,因此将字幕直接打到视频流里面了 打开 test.mp4 文件我们可以看到字幕: 2)字幕格式转换 MP4 支持的字幕格式主要有两种常见的格式...它将保持音频流的原始格式,并指定视频流编码格式为 libx264,并将字幕直接添加到视频中,然后将结果保存为 “output1002.mkv” 文件 ffmpeg -i SampleVideo_1280x720...格式可以参考以下步骤) 下面命令的作用是将输入文件 input_test.mp4 进行转码,并将其视频流直接复制到输出文件 output_test.flv 中,而音频流将使用 libmp3lame...通过使用 -c copy选项,输入文件的编码格式将直接复制到输出文件中,而不进行重新编码。使用 -f mp3 选项指定输出文件的格式为 MP3。

    2.7K50

    FFmpeg简易播放器的实现-音视频播放

    封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。...例如,FLV格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的音频码流。 解码 将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据。.../ffplayer.c 源码清单中涉及的一些概念简述如下: container: 对应数据结构AVFormatContext 封装器,将流数据封装为指定格式的文件,文件格式如AVI、MP4等。...各API大量使用AVCodecContext来引用编解码器。 codec par: 对应数据结构AVCodecParameters 编解码器参数。新版本增加的字段。...frame: 对应数据结构AVFrame 解码后的原始数据。解码器将packet解码后生成frame。

    3K20

    FFmpeg菜鸡互啄#第1篇#一些基本概念

    常见的封装格式有mp4、flv、avi、mkv… 视频编码 将视频像素数据(RGB, YUV等)压缩编码成视频流,从而降低视频的数据量。...一般使用H.264的情况会比较多,可以将图像数据压缩100倍以上。 音频编码 将音频采样数据(PCM等)压缩为音频流,从而降低音频的数据量。...一般使用AAC的情况会比较多,可以将音频数据压缩10倍以上。 视频像素数据 保存了屏幕上每个像素点的像素值。...最后 使用FFmpeg对媒体文件解码之后,大多数情况会直接得到YUV和PCM数据,再把数据利用SDL等媒体库就可以直接播放(其实像VLC这样的FFmpeg的儿子可以直接使用其接口播放媒体文件)。...总的来说,我们一开始学习FFmpeg的时候可以先不深入研究各种封装格式、编码格式和数据格式。研究那些的时候应该就不是菜鸟了吧~

    1.1K90

    直播系统开发之推流及拉流概述

    ); 分别得到已编码的H.264视频数据和AAC音频数据; 使用硬解码(对应系统的API)或软解码(FFMpeg)来解压音视频数据; 经过解码后得到原始的视频数据(YUV)和音频数据(AAC); 因为音频和视频解码是分开的...推流: ​ 推流.jpg 经过输出设备(AVCaptureVideoDataOutput)得到原始的采样数据--视频数据(YUV)和音频数据(AAC); 使用硬编码(对应系统的API)或软编码(FFMpeg...)来编码压缩音视频数据; 分别得到已编码的H.264视频数据和AAC音频数据; 根据不同的封装格式(如FLV、TS、MPEG-TS); 使用HLS协议的时候加上这一步(HLS分段生成策略及m3u8索引文件...推流编码: 推荐Andorid4.3(API18)或以上使用硬编,以下版本使用软编;iOS使用全硬编方案; 播放解码:Andorid、iOS播放器都使用软解码方案,经过我们和大量客户的测试以及总结,虽然牺牲了功耗...将PCM送入设备的硬件资源播放,产生声音。iOS播放流式音频,使用Audio Queue 的方式,即,利用AudioToolbox.Framework 框架。

    6.5K00

    FFmpeg 使用教程

    AVFilter 音视频滤镜库,该模块提供了包括音频特效和视频特效的处理,在使用FFmpeg的API进行编解码的过程中,直接使用该模块为音视频数据做特效处理是非常方便同时也非常高效的一种方式。...filter,称H264_mp4toannexb`,可以将MP4封装格式的H264数据包转换为annexb封装格式的H264数据 (其实就是裸的H264的数据)包。...mp4 output.mp4 从WAV音频文件中导出PCM裸数据 ffmpeg -i input.wav -acodec pcm_s16le -f s16le output.pcm 将两路声音进行合并...的介绍与使用 3.1 术语 容器/文件(Conainer/File) 即特定格式的多媒体文件,比如MP4、flv、mov等。...,解码器将其解码为原始数据(裸数据),之后就可以将原始数据写入文件了。

    2K10

    通过WebAssembly在移动端解码H.265

    每个格式的封装格式不一样,比如FLV格式的基本单元是Tag,而MP4格式的基本单元是Box,辅助的meta信息用于检索找到对应的原始数据。...一个视频格式比如mp4可以使用任何标准化的压缩算法,这些信息都会被包含在一个视频文件的meta信息中来告诉播放器该用什么编解码算法来播放。...方案调整: 设计流程 当前方案 播放流程 因为FFmpeg支持多种格式解封装,只需要在在主线程中通过浏览器API(通常是fetch方法)拉取原始流数据并放到缓存中,等初始缓存到一个阈值时开启Worker...进行解封装及解码; 在子线程(Worker)中通过主线程fetch方法触发的数据回调接收数据存入环形缓冲区(内存环)中; 子线程将读取到的音频帧输送到主线程中,通过Web Audio API缓存音频数据...借助性能上的优势也可以将传统的图像、3D等运算能力要求较高的应用扩展到浏览器端。

    8K42

    69 篇文章带你系统性的学习音视频开发(收藏起来假期看)

    ---- 1.2、音视频编码 这个章节的几篇文章主要介绍了音频和视频主流的编码格式,比如音频的 PCM、AAC,视频的 H.264、H.265、H.266。...9)《视频编码(2):H.265(HEVC)》 本文主要介绍了 H.265(HEVC)视频编码技术的编码工具和特色编码技术,这些内容有助于我们了解 H.265 是如何在 H.264 的基础上通过技术发展和演进实现比前者更加的数据压缩效率...---- 《MP4 格式》概要 11)《MP4 格式:短视频常用格式》 本文介绍了当下互联网短视频最常使用的封装格式 MP4 的基础格式。...---- 《FFmpeg 工具》概要 24)《FFmpeg 工具》 本文主要介绍了基于 FFmpeg 开源项目提供的 ffmpeg、ffplay、ffprobe 等命令行工具。...iOS 平台的音视频处理框架及 API 能力。

    4.8K47
    领券