ffmpeg、avconv 和 sameq

Posted

技术标签:

【中文标题】ffmpeg、avconv 和 sameq【英文标题】:Ffmpeg, avconv and sameq 【发布时间】:2014-12-08 13:12:34 【问题描述】:

之前我是这样写的:

ffmpeg -i input.mp4 -sameq output.mp3

...从而从视频文件中接收音频。 ffmpeg 只是将音频取出或转换为具有适当质量的 mp3。感谢键:-sameq [使用与源相同的量化器]

现在在 Ubuntu 而不是 ffmpeg 中,我们有 libav 并且在那里(在 man 中为 avcomv)我看不到 -sameq 键。好吧,这里有一个问题:我现在要做什么?..

我现在必须做什么才能获得与原始质量相同的转换后的音频文件?

PS。 -sameq :使用与源相同的量化器(隐含 VBR)。

$ man ffmpeg | col -b > ./man_ffmpeg

this man_ffmpeg is there: http://pastebin.com/qYxz1M1E

FFMPEG(1)
NAME
   ffmpeg - ffmpeg video converter
SYNOPSIS
   ffmpeg [[infile options][-i infile]]... [outfile options] outfile...
...
...
...
-sameq
   Use same quantizer as source (implies VBR).
...
...
...
SEE ALSO
   avplay(1), avprobe(1), avserver(1) and the Libav html documentation
AUTHORS
   The Libav developers
2014-02-06
FFMPEG(1)

【问题讨论】:

见What is the -sameq or -same_quant option in FFmpeg? Does it mean “same quality”? 使用有损编码器时无法达到“相同质量”,但您可以为其提供足够的比特率,使其听起来相同。对于 MP3,请使用 -b:a-q:a,如 FFmpeg MP3 Encoding Guide 所示(可能不适用于 avconv)。 -sameq 键在 man ffmpeg @LordNeckbeard 中,您可以在那里查看这些东西:pastebin.com/qYxz1M1E 我需要一些实现“与源相同的量化器”但在 avconv 中 【参考方案1】:

你是对的,-sameq 选项已被弃用,然后从 avconv 中删除,有很多原因。最重要的是存在不同的量化器,并且在不同编解码器之间重新编码时谈论相同的量化器参数毫无意义。

大多数人在重新编码时都在寻找质量,而不是量化器。所以他们应该使用-qscale n,其中 n 介于 1 和 31 之间,代表质量从最好到最差。

从某种意义上说,如果您已经习惯了-sameq 选项,那么您已经成为了一个最好是用于测试目的的工具的牺牲品。它不会产生任何合理的东西,并且可能类似于尝试将“相同的元数据”放入不支持它的容器中,或者将“复制流”“复制”到一种过时的文件格式中(导致诸如带有 vorbis 音频的 AVI 之类的东西) ,甚至无法播放)。您可以将完成所有这些事情的东西组合在一起,但它在视频编码工具中没有位置。

我建议,如果您要对不同的容器和编解码器进行大量压力测试,那么您安装ffmpeg,它有更多工具可以创建科学怪人。如果您重新编码是为了实际保留您生成或分发的文件,那么您可以创建另一个问题来解释您的情况以及您想要的结果是什么。

简而言之,“我如何使用完全相同的量化器创建重新编码过程?”只能用“否”来回答。

【讨论】:

以上是关于ffmpeg、avconv 和 sameq的主要内容,如果未能解决你的问题,请参考以下文章

未找到 FFmpeg/avconv

我收到这个“错误:找不到 FFmpeg/avconv!”

如何在不创建新文件的情况下使用 ffmpeg/avconv 更改元数据?

Discord.js 错误:错误:找不到 FFmpeg/avconv!即使安装

解决使用Monitor出现gym.error.DependencyNotInstalled: Found neither the ffmpeg nor avconv executables的问题

解决使用Monitor出现gym.error.DependencyNotInstalled: Found neither the ffmpeg nor avconv executables的问题