如何以最小的质量损失重新编码H.264视频?


20

我有很多MPEG-TS文件(.TS容器,但有H.264视频),并且回放很好,除了当您向前/向后跳过或快进时,它非常缓慢并且变得像素化等。

我一直在尝试进行研究,我猜想它们使用很少的参考块进行编码(即,它是从DVB-S卫星流中捕获的)。

当我用手刹(.MP4容器)对其进行重新编码时,它们播放得非常好,并且在视频中的搜索是即时的,等等。

是否可以以最小的质量损失对我的MPEG-TS文件进行转码/重新编码?如果是这样,我最好的选择是什么?它们每个约为2 Mbps(即每小时2 GB),但是如果“最小质量损失”需要每个文件10 GB以上,我就不想重新编码它们。我希望视频保持相同大小。

有人可以给我任何建议吗?




4
您是否尝试过将它们重新混入MKV或MP4文件中以查看是否有帮助?查看答案:如何转换和修复MPEG-TS(DVB-S捕获)以获得更好的播放?
afrazier 2012年

Answers:


23

可能是容器问题,将其复制为新的容器格式

avconv -i input.ts -c copy output.mp4

可能会解决您的问题。这将是100%无损的。如果这样不起作用,通常认为18英磅为“视觉无损”;您可以将其设置为HandBrake(在“视频”标签下),或使用avconv:

avconv -i input.ts -c:a copy -c:v libx264 -crf 18 -preset veryfast output.mp4

预设为:超快,超快,非常快,更快,更快,中等,更慢,很慢,非常慢。预设越慢,文件越小(但编码时间会增加)。在我的个人实验中,我发现就文件大小而言,最大的下降是在超快和非常快之间,在那之后看来增量更大。

注意:如果需要,ffmpeg可以使用相同的语法执行avconv可以做的所有事情(只需用ffmpeg替换avconv的所有实例)。

脚注:您可能会发现 ffmpeg x264编码指南对获取更多信息有用。


8

无需详细介绍视频编码:当您的约束是特定的视频编解码器(h.264)或特定的比特率时,就没有“最小质量损失”之类的东西。限制因素将永远存在–如果有一种方法可以保存更高的质量,那么这可以说是视频编码的圣杯。

像x264这样的编码器只能做很多事情–您的主要“控制”旋钮将是“恒定速率因子”设置,该设置在某种程度上可以充当“恒定质量”因子。除此之外,在使用一种特定的编码器重新编码并保持相同的视觉/体验质量时,可以节省多少比特率存在技术限制。

当然,对于XviD(简单的MPEG 4 Part II编码器)和x264(当今最先进的h.264编码器),您将获得不同的结果。然后,您也可以尝试购买Mainconcept h.264编码器,看看在相同的平均比特率下使用它是否会带来更好的质量。

在视频编码中,无论如何,您都将必须进行一些试验,因为它也取决于源材料。足球比赛将比一轮斯诺克更难编码。x264中有一些选项可以调整某些类型(例如电影),例如-tune filmFFmpeg中的选项,但差异可能很小。

有关示例和更多信息,请参见FFmpeg:终极视频和音频处理工具


1

对于我的蓝光如果我编码MPEG-TS文件,我会使用手刹高调,并使用具有以下设置的高级标签:RF 20

b-adapt=2:rc-lookahead=60:bframes=8:direct=auto:trellis=2:ref=16:subq=10:me=umh:merange=24:analyse=all

编码需要一段时间,但是很难与蓝光区分开。

如果您的目标大小相同,则不会发生,因为它是不同的编解码器/压缩方式。文件大小和质量不是一回事。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.