Ffmpeg изменяет битрейт аудиофайла и передает вывод в канал

#ffmpeg #pipe

#ffmpeg #канал

Вопрос:

Раньше я менял битрейт аудиофайлов с помощью

   ffmpeg -i input.mp3 -ab 96k output.mp3
  

и это работает отлично. Теперь я хочу передать вывод в виде канала в Ffmpeg и выполнить какую-то другую задачу. Я взял ссылку на эту документацию и изменил приведенную выше команду ffmpeg на

 ffmpeg -i input.mp3 -ab 96k pipe:1 | aws s3 cp - s3://mybucket/output.mp3
  

Но это не работает.
Только если я использую канал, как показано ниже, тогда он работает.

 ffmpeg -i input.mp3 -f mp3 pipe:1 | aws s3 cp - s3://mybucket/output.mp3
  

Но это не меняет битрейт аудио. Может кто-нибудь, пожалуйста, помогите мне, как я могу достичь своей цели по изменению битрейта и передаче вывода в виде канала

Ответ №1:

Вы должны указать формат вывода вручную. При выводе в файл ffmpeg определяет формат на основе расширения, что невозможно сделать при конвейере.

Используйте

 ffmpeg -i input.mp3 -ab 96k -f mp3 pipe:1 | aws s3 cp - s3://mybucket/output.mp3
  

Комментарии:

1. Большое спасибо, это работает. Мне не хватало выходного формата. Также есть ли что-нибудь, что мне нужно добавить, чтобы сделать его более надежным.