2013-03-18 16 views
5

Makinemizin tüm çekirdeklerini kullanarak bir m3u8 çalma listesi oluşturmak ve oluşturmak için ffmpeg kullanarak HTTP canlı akışı için kesikli segmentli aac segmentine kadar parçalama/kodlamanın yürütme süresini kısaltmak istiyoruz .Ffmpeg'de yalnızca ses bölümlerinin kodlamasını paralelleştirin

Bir deneyde, ffmpeg libfdk_aac ile doğrudan bir wav dosyasını aac'a bölüyordu, ancak bitirmek için epey uzun bir zaman aldı.

İkinci deneyde, ffmpeg bir wav dosyası olarak çok hızlı bir şekilde (wav) (< 1 saniyede makinelerimiz) bir wav dosyası kullandı, daha sonra wav segmentlerini aac olarak kodlamak için ffmpeg'i tekrar çalıştırmak için GNU paralelini kullanıyorum ve .m3u8 dosyasını manuel olarak değiştirmeden sürelerini değiştirmeden. Bu daha hızlı gerçekleştirildi, ancak ses çıkışında "sessizlik" boşlukları duyuluyordu.

Başlangıçta ikinci senaryoyu mp3 kullanarak denedim ve sonuç hala tamamen aynıydı. Ben bu lame kodlama sırasında dolgu ekler (http://scruss.com/blog/2012/02/21/generational-loss-in-mp3-re-encoding/), bu libfdk_aac de kodlama sırasında dolgu ekler?

Belki bu bu soruya ilişkilidir: How can I encode and segment audio files without having gaps (or audio pops) between segments when I reconstruct it?

+0

Doğru bir şekilde anlıyor musunuz: dalgayı bölümlere ayırıp her segmenti ayrı ayrı kodladınız mı? zaman damgası kurallarına - yani her segmentin ilk zaman damgası = önceki segmentin damgası + çerçeve aralığı – NiRR

+0

@NiRR yerinde spot ** iç geçiriyor ** – NeverFall

cevap

3

section 4 of HLS Specification göre, bu elimizde:

A Taşıma Akışı veya ses elementer akım segmenti kodlanmış medya devamı olarak OLMALIDIR önceki sıra numarasıyla segmentin sonu, zaman damgaları ve Süreklilik Sayaçları gibi sürekli bir serilerde değerlerin kesintisiz olarak devam etmesi

"Sessizlik" boşlukları, yanlış sayaç/süreksizlik ile ilgili zamanların% 99,99'udur. 'un manuel olarak .m3u8 dosyasını manuel olarak değiştirdiklerini yazdığınız için, sürelerini kendiniz değiştirmeye çalıştınız. Bu yapılamaz.

Bir HLS akışı, bu sayıcılar nedeniyle paralelleştirilebilir bir oluşturulamaya sahip olamaz. Bir diziyi takip etmeleri gerekir [MPEG2-TS :-(] Daha hızlı bir işlemci almalısınız

+0

Tam olarak yaptığım şey ... Daha hızlı bir işlemci almak gibi şu andaki tek çözüm şu: - /. Ancak şimdi farklı bir yaklaşıma geçtik. – NeverFall

İlgili konular