Вы не зашли.
Главная » PHP » Вырезать часть mp3 записи
#1. WapStyle Off (3)
Участник
2022.11.16 09:09
Вопрос возник, чтобы не нагружать часто обращениями в телеге, хранить у себя "пробники файлов", например длительностью 1 минута (для ознакомления)
как например дёрнуть середину файла?
например файл продолжительностью 240 секунд, как вырвать середину файла длительностью например 30 сек.
да знаю есть так
Код:
ffmpeg -t 00:30
но тут возьмёт с начала файла...

сходу что в голову пришло (пример 30 секунд)
Код:
$time = $row['duration']/2;
echo 'Center - '.$time.' || Start - '.($time-15).' || End - '.($time+15);
Код:
File 233 || Duration - 215 sec
Center - 107.5 || Start - 77.5 || End - 137.5
=========
File 3346 || Duration - 283 sec
Center - 141.5 || Start - 111.5 || End - 171.5
=========
File 127 || Duration - 170 sec
Center - 85 || Start - 55 || End - 115
=========
File 3537 || Duration - 474 sec
Center - 237 || Start - 207 || End - 267
=========
File 3480 || Duration - 230 sec
Center - 115 || Start - 85 || End - 145
=========
File 3445 || Duration - 161 sec
Center - 80.5 || Start - 50.5 || End - 110.5
=========
File 3979 || Duration - 504 sec
Center - 252 || Start - 222 || End - 282
=========
File 1845 || Duration - 448 sec
Center - 224 || Start - 194 || End - 254
=========
File 2786 || Duration - 135 sec
Center - 67.5 || Start - 37.5 || End - 97.5
=========
File 4294 || Duration - 440 sec
Center - 220 || Start - 190 || End - 250
дальше ffmpeg (наверно)
Код:
ffmpeg -ss '.($time-15).' -t '.($time+15)
Отредактировано WapStyle (2022.11.16 10:10)
#2. WapStyle Off (3)
Участник
2022.11.16 13:01
Черновой вариант, но работает  big_smile
Код:
echo 'File '.$row['id'].' || Duration - '.$row['duration'].' sec'.PHP_EOL;
$time = $row['duration']/2;
echo 'Center - '.$time.' || Start - '.($time-30).' || End - '.($time+30).PHP_EOL;
echo '========='.PHP_EOL;
...куча скрытного кода..)))
 
exec('ffmpeg -ss "'.($time-15).'" -t "[тут указываем сколько продолжительность хотим в секундах]" -i "original.mp3" -acodec copy "temp.mp3"');
sleep(3);
exec('ffmpeg -i "temp.mp3" -ar 44100 -ac 2 -ab 128k -y "'.$row['id'].'.mp3"');
результат - резанул ровно по середине, да нужно учесть что треки иногда короткие и длительность уменьшать или вообще не делать "превью" а отдать оригинал
Вложения
2730_original.mp3 8mb [загрузок: 121]
2730.mp3 939kb [загрузок: 125]
Отредактировано WapStyle (2022.11.16 13:01)
#3. WapStyle Off (3)
Участник
2022.11.16 15:03
для пробников сойдёт
Добавлено спустя   7 минут  26 секунд:
Результат для заполнения "пробников"
Код:
echo 'File '.$row['id'].' || Duration - '.$row['duration'].' sec'.PHP_EOL;
$center = $row['duration']/2;
$start = $setup['duration_resize']/2;
if($row['duration'] > 180 AND !file_exists($setup['files_patch'].'time_limit/'.$row['id'].'.mp3') AND $row['size'] < $setup['size_limit'])
{
//скрыто))
 
exec('ffmpeg -ss "'.($center-$start).'" -t "'.$setup['duration_resize'].'" -i "'.$setup['files_patch'].'time_limit/'.$row['id'].'_original.mp3" -acodec copy "'.$setup['files_patch'].'time_limit/'.$row['id'].'_temp.mp3"');
sleep(1);
exec('ffmpeg -i "'.$setup['files_patch'].'time_limit/'.$row['id'].'_temp.mp3" -ar 44100 -ac 2 -ab 128k -y "'.$setup['files_patch'].'time_limit/'.$row['id'].'.mp3"');
unlink($setup['files_patch'].'time_limit/'.$row['id'].'_original.mp3');
unlink($setup['files_patch'].'time_limit/'.$row['id'].'_temp.mp3');
exec('rm -frv '.$setup['files_patch'].'time_limit/cifs*'); //про это не спрашивай, это особенность моего хранилища, засоряет жестяк
sleep(2);
}
}
}
Вложения
Screenshot_1.png 10kb {310x302} [загрузок: 142]
Отредактировано WapStyle (2022.11.16 15:03)
#4. Gemorroj Off (107)
Administrator
2022.11.16 15:03
а зачем sleep?
#5. WapStyle Off (3)
Участник
2022.11.16 15:03
Gemorroj написал:
команды идут через крон, частый запрос (несколько в секунду) телега начинает тупить, приходится "тормозить"
примерно так "php file.php"
то что выше ни как не взаимодействует с пользователем
таймер так то дао выше ставить, примерно секунд 5, но у меня пусто...так что пока 1 секунда
Отредактировано WapStyle (2022.11.16 15:03)
#6. WapStyle Off (3)
Участник
2022.11.16 15:03
сейчас пишу код для файлов размером более 20 мб (по коду бота нельзя скачать более 20мб), благо их всего за пол года накопилось 50 штук из 4500
Отредактировано WapStyle (2022.11.16 15:03)
#7. WapStyle Off (3)
Участник
2022.11.16 15:03
с каждым разом настроек всё больше, подумаю об админке, хотя мне проще в phpmyadmin поменять
Вложения
Screenshot_2.png 8kb {131x512} [загрузок: 137]
#8. WapStyle Off (3)
Участник
2022.11.16 16:04
Смотри как чётко обрезало, первый оригинал, второй "пробник"
Вложения
Olivia Addams - Fool Me Once (Vadim Adamov & Hardphol Remix) [wapstyle.ru].mp3 7mb [загрузок: 129]
Olivia Addams - Fool Me Once (Vadim Adamov & Hardphol Remix).mp3 939kb [загрузок: 130]
Отредактировано WapStyle (2022.11.16 16:04)
#9. Gemorroj Off (107)
Administrator
2022.11.16 17:05
ну да, и битрейт порезало
#10. WapStyle Off (3)
Участник
2022.11.16 19:07
Gemorroj написал:
ну да, и битрейт порезало
но ведь для пробника само то) и понял что играет и место мало занимает
Добавлено спустя   7 минут  35 секунд:
А есть плюс в этом всём smile
Лови подкасты https://wapstyle.ru/podcast.mp3 (один трек не более минуты)
не пробовал, но если в плеер добавить URL должно писать название
AIMP проверено, показывает название трека только если в ручную листануть "следующий"
пока некогда php радио развивать))
Отредактировано WapStyle (2022.11.16 19:07)
#11. WapStyle Off (3)
Участник
2022.11.16 19:07
Gemorroj написал:
ну да, и битрейт порезало
так задумано, снизить размер файлов но сервере, прикинь их 4500 в хорошем качестве, примерно 60 гигов...
но я изначально шёл чтобы у меня ничего не было - сервера телеги (2 бота)
все файлы там, до 20мб, но чтобы не тратить трафик я решил сделать "пробники", наверно логично
да любой может скачать "плейлист" за прошлый день и слушать на 100% качестве
вот бери любой день https://wapstyle.ru/history/ и слушай в хорошем качестве
Отредактировано WapStyle (2022.11.16 19:07)
#12. WapStyle Off (3)
Участник
2022.12.14 18:06
Давно не заходил, вот часть кода, пашет и не ругается, режет как надо и где надо)
Код:
## Ищем середину файла по времени
$center = $row['duration']/2;
$start = $setup['duration_resize']/2;
## Обрезаем лишнее
exec('ffmpeg -ss "'.($center-$start).'" -t "'.$setup['duration_resize'].'" -i "'.$setup['files_patch'].$row['id'].'.mp3" -acodec copy "'.$setup['files_patch'].$row['id'].'_temp.mp3"');
sleep(1);
## Меняем битрейт на 128
exec('ffmpeg -i "'.$setup['files_patch'].$row['id'].'_temp.mp3" -ar 44100 -ac 2 -ab 128k -y "'.$setup['files_patch'].'time_limit/'.$row['id'].'.mp3"');
## Удалить лишнее
unlink($setup['files_patch'].$row['id'].'_temp.mp3');
з.ы.
$setup['duration_resize'] - сколько секунд обрезок будет
Отредактировано WapStyle (2022.12.14 18:06)
Страниц: 1 2 Все
Главная
WEB
PunBB Mod v0.6.2
0.016 s