如何在ffmpeg(-f)中为输入和输出指定文件类型?

如何在ffmpeg(-f)中为输入和输出指定文件类型?,ffmpeg,Ffmpeg,我正在使用ffmpeg将stdin(管道:0)转换为stdout(管道:1)。 我的输入格式是“s16le”,输出格式是“wav”。 如何在ffmpeg命令中指定两种不同的格式 我还使用了两种不同的频率(-ar),输入44100Hz和输出22050Hz,如何在ffmpeg命令中指定这两种不同的频率?在ffmpeg中,参数位于输入/输出之前,用于特定的输入/输出 在您的情况下,您的命令类似于: ffmpeg -sample_rate 44100 -f s16le -i - -ar 22050 -c

我正在使用ffmpeg将stdin(管道:0)转换为stdout(管道:1)。 我的输入格式是“s16le”,输出格式是“wav”。 如何在ffmpeg命令中指定两种不同的格式


我还使用了两种不同的频率(-ar),输入44100Hz和输出22050Hz,如何在ffmpeg命令中指定这两种不同的频率?

在ffmpeg中,参数位于输入/输出之前,用于特定的输入/输出

在您的情况下,您的命令类似于:

ffmpeg -sample_rate 44100 -f s16le -i - -ar 22050 -codec copy -f wav -
在这种情况下,
-ar 44100
-f s16le
应用于输入,因为它们位于输入之前


-ar 22050
-codec copy
-f wav
应用于输出,因为它们在输入之后但在输出之前。

不要忘记
-channels
输入选项:对于s16le,默认值
1
。此外,此解复用器的采样率输入选项名义上是
-sample\u rate
,而不是
-ar
。请参见
ffmpeg-h demuxer=s16le
。此外,我认为在ffmpeg中stdin是pipe:0,stdout是pipe:1,而不是像大多数其他程序一样的“-”,CMalasadas
-codec copy
启用了避免重新编码的模式。是的,出于习惯,我总是明确列出
-codec copy
,如果这是我想要的。我的配置往往会随着时间的推移而更新,如果我更改了可能使用不同的默认编解码器的容器,我不想因为忽略了
-codec副本而意外地开始转码。所以,我总是指定编解码器,即使在这种情况下不需要。