задержать звук с помощью ffmpeg - PullRequest
3 голосов
/ 10 марта 2012

Я пытаюсь получить много wav-файлов с задержкой на 2 секунды при запуске с ffmpeg.И до сих пор, даже знаю, что у меня есть ReadTFM, я не смог заставить его работать.Вот моя команда

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

И ничего не меняется.Файлы просто копируются.Я также попробовал это с mp3.Прошло некоторое время, и я подумал, что, может быть, эта команда просто записывает задержку в контейнер, но не дерьмо.Пробовал на mkv и avi.

Команда такая же здесь и здесь , но она не работает.Пожалуйста, помогите.

Ответы [ 3 ]

4 голосов
/ 16 августа 2012

Вы должны поставить -itsoffset ПЕРЕД указанием ввода. Итак:

ffmpeg -itsoffset 00:00:02 -i "%%A" "%%~NA"1.wav
2 голосов
/ 19 декабря 2012

Я знаю, что этому вопросу больше 9 месяцев, но я натолкнулся на него и хотел добавить больше информации о '-itsoffset'. Со страниц тикета FFMPEG (https://ffmpeg.org/trac/ffmpeg/ticket/1349):

)

Эта команда должна отображать содержимое файла1 на одну секунду раньше, чем содержимое файла2:

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 (ошибка?)

И вот где эта проблема стоит на сегодняшний день.

2 голосов
/ 10 марта 2012

Изменение смещения входного времени таким образом не даст ничего заметного для отдельного потока, оно предназначено для устранения несинхронизированных проблем между аудио- и видеопотоками.

Хотите начать с двух секунд молчания? Если это так, один простой способ, который сработает (хотя это может показаться немного хакерским), это просто подключить 2-секундный WAV, полный тишины, перед фактическим вводом. Это можно сделать, просто добавив другую опцию -i перед фактическим файлом:

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