Як розділити І кодувати аудіо на дві частини і об'єднати їх назад за допомогою ffmpeg?


1

Пробачте довге запитання, я не знаю простішого / коротшого способу сказати вам мою думку.

Я хочу використовувати ffmpeg для редагування (вимкнення і т. Д.) І розділення аудіофайлів і об'єднання його назад разом після. (Я не можу використовувати копію -c, оскільки використовую фільтри)

Використовуючи mp3, розділене положення очевидно порушується при злитті назад. Тому я спробував використовувати необроблений, лінійний формат, але це також створює артефакти в точці розколу.

Чи є аудіокодек, який можна використовувати з моєю метою, чи є у вас якісь інші ідеї, які могли б вирішити мою проблему? Спасибі заздалегідь!

Як вихідний момент, ось мої команди прямо зараз:

ffmpeg -t 20 -i song.mp3 -filter_complex afade=t=in:ss=0:d=2 -vn -f u16le part1.raw
ffmpeg -ss 20 -i song.mp3 -filter_complex afade=t=out:ss=60:d=2 -vn -f u16le part2.raw

^ Я знаю, що це можна зробити без розбиття, але пізніше я буду передавати висновки і т.д. в реальному середовищі, тому мені потрібно розділити / об'єднати ...

ffmpeg -f u16le -i "concat:part1.raw|part2.raw" -vn output.mp3


MP3-файли не мають часових позначок, тому пошук делюкс є неточним. Перейдіть до декодера, який шукає, тобто розмістіть ss / t після назви вводу.
Gyan

Я спробую це, дякую! Але я не надто оптимістичний, тому що я спробував заздалегідь перетворити mp3-файли в siws, і це теж не вийшло.
Генрі

Я зміг відтворити вашу проблему, використовуючи команди вашої форми, і уникнути її, перейшовши на пошук декодера.
Gyan

Дякую, чуваче! Спробую це зараз. Інша справа, чому ви не опублікували свій перший коментар як відповідь? Я новачок у цій платформі.
Генрі

Це не працює для мене. Справа в тому, що я використовую безперервний потік в кінці. Що я пишу на трубу: Song1, Crossfade, перші 10 секунд Song2 -> Song2 -ss 10, Crossfade, перші 10 секунд Song3 ... - це переходить в один екземпляр, який потім кодує потік льодовику + mp3-файл. Цей екземпляр видаляє помилки при використанні mp3: "Проголовок відсутній / Неправильні дані, знайдені при обробці вводу / Аудіопакет недійсний" і т.д. Будь-яка ідея, як я можу цього досягти? Чи можу я повідомити про випадки злиття з останньою частиною потоку?
Генрі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.