Pracuję nad muzyczną aplikacją VOD na iPhone'a, a dzięki wytycznym Apple'a muszę uruchomić transmisję na żywo HTTP, aby zostać zaakceptowanym w AppStore. Ale ponieważ Apple nie dba o 98% serwerów na świecie, nie udostępnia ich tak magicznych narzędzi HTTP Streaming Live dla systemów opartych na systemie Linux. I od tego momentu zaczyna się koszmar.Transmisja na żywo HTTP: Koszmar Linuxa
Mój cel jest prosty: weź MP3, podziel go i wygeneruj prosty plik indeksu .m3u8. Przeszukałem "HTTP Live Streaming Linux" i "Świetnie, wiele osób już to zrobiło"!
Najpierw odwiedziłem the (so famous) post by Carson McDonald. Wynik: svn segmentate.c był stary, zapluskwiony i koszmar do skompilowania (Nikt na tym świecie nie potrafi określić, z której wersji ffmpeg korzystają!). Potem natknąłem się na the Carson's git repo, ale szkoda, jest wiele irytujących ruby, a live_segmenter.c nie może pobrać plików mp3.
Potem szukałem głębiej. Znalazłem this stackoverflow topic i dokładnie to chcę zrobić. Więc poszedłem za radą Juuni, aby użyć this script (httpsegmenter). Wynik: Niemożliwe do skompilowania czegokolwiek, 2 dni pracy i wreszcie udało mi się go skompilować (ffmpeg 8.1 w/httpsegmenter rev17). I nie, to nie jest dobry skrypt, wymaga plików mp3, ale wygenerowane pliki ts i plik indeksu nie mogą być odczytane przez odtwarzacz.
Następnie autor postu krisbulman, przyszedł z rozwiązaniem, a nawet dał poprawioną wersję m3u8-segmenter przez jego własną (git repo). Testuję to: nie kompiluje, nic nie robię. Więc wziąłem oryginalną wersję z johnf https://github.com/johnf/m3u8-segmenter. Udało mi się skompilować i cudem działa (nie bardzo). użyłem tego wiersza poleceń (ffmpeg 0.8.1):
ffmpeg -er 4 -i music.mp3 -f mpegts -acodec libmp3lame -ar 44100 -ab 128k -vn - | m3u8-segmenter -i - -d 10 -p outputdir/prefix -m outputdir/output.m3u8 -u http://test.com/
Ten skrypt zakodować mój plik mp3 (trwa 4 sekundy, zbyt długo) i przekazać je do M3U8-segmentacji do segmentu go w 10 sekund Pliki .TS.
Przetestowałem ten strumień za pomocą mediastreamvalidatora firmy Apple na moim komputerze Mac, i powiedziałem, że było OK. Więc zagrałem w quicktime, ale pomiędzy każdym plikiem .TS jest około 0,2 sekundy pustej!
Oto moja sytuacja, to koszmar, nie mogę uzyskać prostego strumienia mp3 w protokole HLS. Czy istnieje proste rozwiązanie WORKING umożliwiające segmentację pliku mp3? Dlaczego nie mogę bezpośrednio posegmentować pliku mp3 na wiele plików mp3, jak robi to plik mediafilesegmenter firmy Apple?
Twój angielski jest w porządku, ale twój post jest długa i niespójne. Czy możesz go skondensować i skupić się na kluczowym pytaniu? –
Główne pytanie brzmi: czy istnieje proste rozwiązanie, które umożliwia segmentację pliku mp3 w Debianie? – Ethan0026
Cóż, to wyjaśnia ten zaskakujący acccceent. –