《FFmpeg Basics》中文版-11-格式之间转换

本文介绍了FFmpeg在多媒体格式转换中的应用,包括文件格式、容器、转码和转换的概念,以及不同编码器如MPEG-1、MPEG-2、MPEG-4和libvpx的使用。通过 ffmpeg 工具,可以实现音频或视频格式的转换,同时讨论了编解码器选择、覆盖输出文件和通用及私有选项设置。
摘要由CSDN通过智能技术生成

正文

ffmpeg工具的最常见用法是从一种音频或视频格式转换为另一种相关的格式。 格式参数在输出文件之前由-f选项设置,或者在输入文件之前也有原始输入,具体的可用格式信息在[显示帮助和功能]一章中列出来了。

多媒体格式介绍

文件格式

媒体格式是能够存储音频或视频数据的特殊文件类型。 其中一些能够存储更多类型的数据与多个流,这些被称为容器。 [第二章]列出了可用的媒体格式,并可以使用命令ffmpeg -formats进行显示。

视频文件格式通常可以同时包含视频和音频流,但是有一些特殊的格式,只能包含音频,详细信息在[数字音频]章节中有描述。

多媒体容器

媒体容器是特定类型的包装文件,用于存储多媒体流和相关元数据的特殊文件格式。 由于音频和视频可以通过各种方法(算法)进行编码和解码,容器提供了将各种媒体流存储在一个文件中的简单方法。 一些容器只能存储音频(AIFF,WAV,XMF等),一些只能存储图片(TIFF ...),但大多数容器存储音频,视频,字幕,元数据等。所有列出的视频容器也支持一些 字幕格式,特别是SubRip和Advanced SubStation Alpha。

媒体容器

如果只更改容器并保留编解码器,我们可以使用-c copy-c:a copy-c:v copy选项:

ffmpeg -i input.avi -q 1 -c copy output.mov

转码和转换

【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【文章福利】:免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~

  

将输入文件使用ffmpeg处理成输出文件称为转换,它可以包括格式之间的转换或者仅修改某些数据,输出媒体格式保持不变的转码。 数据包可以被编码压缩或解压缩,压缩包括使用特定的编解码器。 转码过程可以分为几个部分:

*解复用(demultiplexing) - 基于文件扩展名(.avi,mpg等)被选中来自libavformat库的最好的解复用(解复用器),从输入文件生成编码数据包

  • 解码-数据包是由一个适当的解码器解码,产生未压缩的帧;如果使用-c copy(或-codec copy)选项,则不会发生解码(也不进行过滤)。

  • 可选的过滤器 - 解码的帧可以通过指定的过滤器进行修改

  • 编码 - 未压缩的帧由选定的编码器编码为数据包

  • 复用(multiplexing) - 将数据包复用(multiplexed)为选定的媒体格式。

    作者喜欢这种花花绿绿的图,,我也没办法

ffmpeg中转换的可用选项被划分为通用的和私有的。可以为任何容器、编解码器或设备设置通用选项,私有选项针对所选的编解码器、容器或设备。

编解码器介绍

codec的名字来源于单词编码解码器(或编码解码器),它表示一个设备或软件工具,用于编码和解码一个被压缩的视频或音频流。FFmpeg编解码器定义是一种媒体比特流格式。下一个命令显示可用的编解码器:

  • ffmpeg -codecs ...显示的都是解码器和编码器

  • ffmpeg -decoders ...只显示解码器

  • ffmpeg -encoders ...只显示编码器 命令行上的编解码器是由-c-codec选项指定的,语法是:

    -codec[:stream_specifier] codec_name

可以为输入和输出文件指定编解码器,如果输出包含多个流,则每个流可以使用不同的编解码器。 如果我们在没有编解码器的情况下指定输出格式,则ffmpeg会选择默认编解码器,常见媒体格式的默认编解码器列表如下:

格式 编解码器 其他数据
.avi mpeg4 mpeg4 (Simple profile), yuv420p; audio: mp3
.flv flv1 yuv420p; audio: mp3
.mkv h264 h264 (High), yuvj420p; audio: vorbis codec, fltp sample format
.mov h264 h264 (High), yuvj420p; audio: aac (mp4a)
.mp4 h264 h264 (High), yuvj420p; audio: aac (mp4a)
.mpg mpeg1video yuv420p; audio: mp2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值