2

Фон

Мне нужно конвертировать AVI файлы в H264 (MP4). Я успешно делаю это со следующим:

-i mymovie.avi -c:v libx264 -crf 19 -preset slow -c:a libfaac -pix_fmt yuv420p -f mp4 -b:a 192k -y -an output.mp4

Я вызываю команду через приложения C # .Net Winforms, хотя подозреваю, что это мало повлияет на ответ.

Вопрос

Как добавить звуковую дорожку? Мне нужно добавить один, так как я должен иметь возможность загружать видео в Instagram, который, кажется, отклоняет файлы без звуковой дорожки (к моему раздражению). На самом деле мне не нужна очень длинная звуковая дорожка. Мои мысли были пару секунд "тишины" в формате MP3.

Я думаю, что мне понадобится аудио AAC в качестве выхода.

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

Пока что попыток

Я понял, что мне нужно будет использовать команду -shortest как звук будет короче, чем видео. На самом деле я буду добавлять пустой MP3 (или аналогичный) просто так, чтобы при кодировании я получал аудиопоток, встроенный в видео.

Я также пытался использовать команду -map но безуспешно.

2 ответа2

1

Вы можете генерировать тихий аудиопоток с аудио источником aevalsrc:

ffmpeg -y -i test.avi -f lavfi -i aevalsrc=0 -c:v libx264 -crf 19 -preset slow \
-pix_fmt yuv420p -shortest output.mp4

Это проще, чем использовать пустой аудиофайл в качестве входных данных.

1

Хорошо, вот команда, которая у меня работает. Я обнаружил, что в моей сборке ffmpeg нет libfaac поэтому я переключился. Мне не нужны были опции -map , так как FFMPEG может нормально работать с 2 входами без дополнительной настройки.

-i test.avi -i music.mp3 -c:v libx264 -crf 19 -preset slow -c:a libvo_aacenc -pix_fmt yuv420p -f mp4 -b:a 192k -y -shortest output.mp4

Различия между моим оригиналом и тем, что работает:

  • libvo_aacenc заменяет libfaac
  • -shortest добавлен, чтобы иметь дело с более коротким аудио, чем видео
  • -i используется для ввода аудио

Обновить

Команда после некоторого отличного ввода в комментариях теперь

-i test.avi -i music.mp3 -c:v libx264 -crf 19 -preset slow -c:a aac -strict experimental -pix_fmt yuv420p -f mp4 -b:a 192k -y -shortest output.mp4

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .