使用ffmpeg延迟音频

时间:2012-03-10 02:12:54

标签: audio ffmpeg delay

我试图在ffmpeg启动时将大量wav文件延迟2秒。 到目前为止,即使知道我有ReadTFM,我也无法让它工作。 这是我的命令

for %%A in (*.wav) do (
ffmpeg -i "%%A" -itsoffset 00:00:02 "%%~NA"1.wav )

没有任何改变。文件只是被复制了。我也试过用mp3s。 随着时间的推移,我想也许这个命令只是简单地将延迟写入容器,但没有什么东西。试过mkv和avi。

命令与herehere相同,但不起作用。请帮忙。

3 个答案:

答案 0 :(得分:4)

在指定输入之前,必须放置-itsoffset。所以:

ffmpeg -itsoffset 00:00:02 -i "%%A" "%%~NA"1.wav

答案 1 :(得分:2)

更改输入时间偏移不会对单个流做任何明显的事情,它意味着修复音频和视频流之间的不同步问题。

你想在一开始的两秒沉默吗?如果是这样,一个简单的工作方式(虽然它可能感觉有点hackish)就是在实际输入之前简单地使用2秒WAV充满静音。这可以通过在实际文件之前添加另一个-i选项来实现:

ffmpeg -i 2secsilence.wav -i "%%A" "%%~NA"1.wav

答案 2 :(得分:2)

我知道这个问题已经超过9个月了,但我偶然发现了它并希望添加更多关于'-itsoffset'的信息。来自ffmpeg故障单页面(https://ffmpeg.org/trac/ffmpeg/ticket/1349):

  

此命令应该比file2内容早一秒显示file1内容:

     

ffmpeg -itsoffset -1 -i file1.ts -i file2.ts -vcodec copy -acodec copy -map 0:0 -map 1:1 out.ts

     

1)我看到-itsoffset在文件中添加或减去所有时间戳(视频和音频流)。所以这个选项只有在从单独的输入文件重新转换时才会有用。

     

2)outfile具有.ts和.mkv容器的播放行为。

     

3)它不适用于.avi(没有时间戳,所以不是一个惊喜)

     

4)它不适用于.mp4容器(一个bug?)

这就是今天这个问题的立场。