如何在ffmpeg(-f)中为输入和输出指定文件类型?
我正在使用ffmpeg将stdin(管道:0)转换为stdout(管道:1)。 我的输入格式是“s16le”,输出格式是“wav”。 如何在ffmpeg命令中指定两种不同的格式如何在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
我还使用了两种不同的频率(-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副本而意外地开始转码。所以,我总是指定编解码器,即使在这种情况下不需要。