Продолжительность ввода FFmpeg?

С FFmpeg у вас есть опция -t, которая устанавливает продолжительность вывода. Однако я не вижу способа ограничить продолжительность ввода. Возьмите эту команду

ffmpeg -i video.mp4 -c copy -t 60 out.mp4

Это просто создает 60-секундный клип исходного видео. Однако, если бы я хотел обрезать аудио, сохраняя при этом полный видеопоток, FFmpeg, похоже, не имеет для этого возможности.

Я попытался сначала просто обрезать звук, а затем объединить обрезанный звук с видеофайлом, но это вызывает у меня проблемы с синхронизацией видео/аудио.


person Steven Penny    schedule 18.08.2012    source источник


Ответы (2)


‘-aframes number (output)’

    Set the number of audio frames to record. This is an alias for -frames:a. 

Параметры аудио

ffmpeg -i video.mp4 -c copy -aframes 100 out.mp4
person Steven Penny    schedule 20.08.2012

Используйте опцию «-itsoffset». Это делает первые 10 секунд отключенными.

ffmpeg -i video.mp4 -vn -acodec copy -ss 10.0 out_audio.mp4
ffmpeg -itsoffset 10.0 -i out_audio.mp4 -i video.mp4 -vcodec copy -acodec copy out.mp4
person user1603541    schedule 19.08.2012
comment
Если вы просто хотите игнорировать звук, есть -an. Если вы хотите контролировать, сколько кадров ввода использовать, параметр -vframes является опцией. Если вы хотите использовать, скажем, 100 кадров ввода с 23-й секунды, -ss 23.0 -vframes 100 сделает это за вас. Объедините с -an, и у вас вообще не будет звука. - person av501; 20.08.2012