LINUX.ORG.RU

sox: добавить watermark


0

1

Есть небольшой файлик, который надо добавлять к аудио файлам, причём он должен повторяться с некоторым интервалом. Как добавить в начало понятно:

sox -m 1.wav 2.mp3 3.mp3

Но как можно сделать так что бы напр. 1.wav повторялся при проигрывании с некоторой паузой X?

Если это не то же самое, что http://www.linux.org.ru/forum/development/5215127?lastmod=1281533017038, т.е. смешивать не нужно, то, очевидно, надо разбивать на n частей, а потом объединять с этим вашим 1.wav в местах разрыва.
Разбивать - mp3splt, объединять - видимо, sox.

SOmni ★★
()

А ещё вместо watermark можно ухудшать качество до нужной степени сворачивания ушей :)

SOmni ★★
()

Соундфорж рулит, да и цена норм, если по серъозному музыкой занят, все эти пионерские sox суксы ИМХО, для склейки воя кошек только.

anonymous
()
Ответ на: комментарий от anonymous

какой соундфорж, мне надо что бы делалось скриптом консольным, после заливки к файлу добавлялось. и прошу меня извращенцем не считать, я бы до такого не додумался, но заказчик гад буржуй придумал такое, причём этого доп. задания в изначальном проекте не было. не портить же репутацию из-за этой фигни с ним дураком ругаться, вроде ж всего одна строчка bash кода с использованием этих утиллит. может кто знает всё же.

par12b12
() автор топика
Ответ на: комментарий от anonymous

говно этот твой сандфорж, зелёненький, wavelab всю жизнь его заруливал

anonymous
()
Ответ на: комментарий от lazyklimm

ecasound объясните как работает, совершенно непонятно. В мануале написано что есть такая вещь как 'audioloop', и что с её помощью можно повторять проигрывание файла. Пример отсюда http://eca.cx/ecasound/Documentation/examples.html

To continuously loop an audio file, you can use 'audioloop':

ecasound -i audioloop,drumloop.wav -o alsa

Запускаю с mp3 файлом коротким (~1 сек) который должен использоваться как watermark. Файл проигрывается один раз. Запускаю с другим файлом, ~ 2 минут по длине. Песня проигрывается много раз, но не вся, а вместо этого доходит до определённого места где-то в середине и начинает проигрываться заново. Как же это работает чёрт побери.

par12b12
() автор топика
Ответ на: комментарий от par12b12

ecasound -a:1 -i audioloop,select,5,1,«loop.flac» -o alsa -a:2 -i «song.flac» -o alsa

играет целиком песню song.flac параллельно повторяя 1-секундный отрезок файла loop.flac с пятой секунды

lazyklimm ★★★★★
()
Ответ на: комментарий от lazyklimm

Так работает, но только с select. Как повторять не отрывок а весь файл полностью? Не хочется ещё возиться с определением длины файла для select'а. И ещё проблема:

Так как написано работает, но если вместо '-o alsa' указать '-o file.mp3' пишется сообщение «An output object has raised an error! Possible causes: Out ... of disk space, permission denied, unable to launch external applications needed in ... processing, etc.» Что это значит? Мне же надо в файл сохранить.

par12b12
() автор топика
Ответ на: комментарий от anon_666

anon_666, вот это помогло, огромное спасибо.

То что надо, только ещё остаётся вопрос как можно определить из PHP скрипта длину аудио файла что бы подсчитать количество повторений XXX.

par12b12
() автор топика
Ответ на: комментарий от anon_666

Да нет, эта ф-я возвращает длину в байтах, я имел ввиду определить длину в секундах сколько проигрывается файл.

par12b12
() автор топика
Ответ на: комментарий от anon_666

Как определить bitrate? Там файлы я так понимаю разные будут заливаться, и т.к. с аудио обработкой не работал я хз чё такое bitrate но наверно разный будет.

par12b12
() автор топика
Ответ на: комментарий от par12b12

Может кому пригодиться, нашёл способ простой определить длину аудио: `sox <file> -n stat`.

par12b12
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.