ffmpeg muxer 可以将任何编码的数据包合并到容器中吗?

ffmpeg muxer 可以将任何编码的数据包合并到容器中吗?

我只是想知道是否存在限制,即一种容器只能包含一定数量的特殊编解码器编码的数据包。

我担心自己解释得不好。更具体地说,是否存在“ogg”容器无法包含的某种编码数据包,或者无论它是什么容器,它都可以包含任何类型的编码数据包

答案1

通常,多媒体容器仅限于某些可以嵌入的编解码器。有些容器的限制比其他容器多。例如,Matroska 容器几乎可以包含任何视频、音频或字幕编解码器。另一方面,诸如 MPEG-4 Part 14 (.mp4) 之类的容器则非常有限。诸如 MPEG-2 Transport Streams 之类的容器非常灵活,因为它们允许您定义“私有流”,非标准化编解码器可以在其中传输。

你会发现维基百科上的广泛概述

当然,原则上,你可以将任何伪装成视频或音频的随机数据嵌入到容器中。容器只是用来捆绑有效载荷。但我看不出它有什么实际用途,因为如果没有理解有效载荷的解析器,你就无法解码数据。

你也可能对此有兴趣:什么是编解码器(例如 DivX?),它与文件格式(例如 MPG)有何不同?

关于你的具体问题,你会发现 Ogg 容器可以承载以下编解码器

  • 视频:Theora、Dirac、OggUVS、MNG
  • 音频:Vorbis、FLAC、Speex、Opus、OggPCM

更具体地说,ffmpeg 无法将任意数据复用到容器中。当某个编解码器对某种格式无效时,它会告诉您。

相关内容