Ubuntu 中最节省空间的多媒体容器是什么?

Ubuntu 中最节省空间的多媒体容器是什么?

我收集了一些视频,这些视频存储在各种多媒体容器中,例如 AVI、MP4、MKV 等,我想确定可以将它们存储在哪个容器中而无需重新编码(以避免质量损失)。我想使用 将avconv流快速直接复制到新的容器格式,例如avconv -i <input-file> -c:a copy -c:v copy <output file>。有没有人做过任何测试来确定容器效率?

为了清楚起见,我谈论的是多媒体容器,例如 AVI、Matroska 等,而不是编解码器,因为我不想重新编码。

编辑:为了进一步澄清“容器效率”,我的意思是指具有最小开销(容器框架使用的浪费字节)的容器。

答案1

为了进行测试,我通过 torrent 下载了一个无版权视频(Destroy All Planets),网址为互联网档案馆。由于它包含许多文件,这些文件位于不同的多媒体容器中,比特率也不同,因此我选择了最高质量的版本,即 Destroy_All_Planets.mpeg,其分辨率为 720x480,帧率为 30 fps,MPEG2 视频流的可变视频比特率为 ~3000 kbps(最大 6000 kbps)mediainfo,AC-3 音频流的采样率为 48000 Hz,比特率为 192 kbps。我尝试将其转换为我能找到的所有多媒体容器类型。使用命令avconv infile -c:a copy -c:v copy outfileAVI 尝试似乎默认为未压缩,并且显然被重新编码(或解包),因为大小大幅增加,并调整为 90fps,比特率为 15.9 Mbps。其他几个容器无法接受数据输入,结果中可以看到文件大小为 0。根据本次测试的结果,MP4 和 MOV 容器似乎是最高效的(并列第一),而 Matroska 容器稳居第三。测试的所有其他多媒体容器的实际大小都超过了源材料。

11036656 Destroy_All_Planets.avi

 2287920 Destroy_All_Planets.ts

 2140308 Destroy_All_Planets.asf

 2140308 Destroy_All_Planets.wmv

 2106300 Destroy_All_Planets.mpeg

 2103940 Destroy_All_Planets.mkv

 2103404 Destroy_All_Planets.mov

 2103404 Destroy_All_Planets.mp4

       0 Destroy_All_Planets.3g2

       0 Destroy_All_Planets.3gp

       0 Destroy_All_Planets.flv

       0 Destroy_All_Planets.mxf

       0 Destroy_All_Planets.ogg

       0 Destroy_All_Planets.webm

为了充分披露,应该指出的是,在这种情况下,转换为 mkv 也失败了,我得到了错误,Can't write packet with unknown timestamp我之前在其他文件上解决了这个问题,方法是在输入文件之前添加,-fflags +genpts这是概述的解决方法这里。在这种情况下,它产生了一个可播放的文件,但我尝试过的任何播放器都无法确定其持续时间。在这种情况下,将之前转换的 mp4 转换为 mkv 效果很好。另一项测试得出以下结果:

3129112 disorder_in_the_court.avi
 623632 disorder_in_the_court.ts
 583424 disorder_in_the_court.mpeg
 575288 disorder_in_the_court.mov
 575288 disorder_in_the_court.mp4
 575224 disorder_in_the_court.mkv

之前的测试包括一个带字幕的 mpeg,这个没有嵌入字幕,Matroska 容器的文件大小最小。它还具有在测试的容器中最灵活的优势,几乎可以容纳任何视频、音频或字幕格式目前可用。

相关内容