2011-11-02 21 views
8

Naprawdę utknąłem z tym problemem, ponieważ nie widziałem wystarczająco dużo informacji w Internecie na temat kodowania wideo w systemie iOS, ale możemy zaobserwować wiele aplikacji, które radzą sobie z problemem strumieniowego przesyłania wideo (skype , qik, justin.tv, itp.)
Mam zamiar opracować aplikację, która powinna wysyłać klatki wideo uzyskane z kamery i zakodowane w h.263 (h.264 lub MPEG-4 jest to w trakcie decyzji) do serwer internetowy. Do tego potrzebuję biblioteki do kodowania wideo. Oczywiście ffmpeg może poradzić sobie z tym zadaniem, ale jest ono objęte licencją LGPL, co prawdopodobnie może prowadzić do problemów z przesłaniem aplikacji do AppStore. Z drugiej strony, istnieje kilka applications, które wydają się korzystać z biblioteki ffmpeg, ale tylko Timelapser wyraźnie stwierdza ten fakt w opisie aplikacji. Czy to oznacza, że ​​inne aplikacje nie używają ffmpeg lub po prostu ukrywają te informacje?Biblioteki kodowania wideo dla iOS

Proszę, podziel się swoimi przemyśleniami i doświadczeniem w tym temacie. Jestem otwarty na dusussion.

Odpowiedz

8

Po przeszukaniu i przeprowadzeniu badań w tej dziedzinie, znalazłem tę jedną bibliotekę http://www.foxitsolutions.com/iphone_h264_sdk.html. Naprawdę używają kodowania sprzętowego. Zbadałem przykład demo za pomocą instrumentów i pokazali mi, że podczas kodowania używane jest ~ 12% procesora i syscall read() jest ciągle wywoływany. Na tej podstawie mogę stwierdzić, że ich biblioteka używa standardowego pliku AVFoundation AVAssetWriter do zapisu w pliku tymczasowym, a (prawdopodobnie) współbieżny wątek jest używany do odczytu tego pliku tymczasowego w celu pobrania zakodowanych ramek.

Zobacz także http://www.videolan.org/developers/x264.html. Jest na licencji GPL, ale nadal może być przydatny.

+0

Dzięki za link do rozwiązań Foxit. Niestety nie mają teraz żadnego demo - tylko e-mail do kontaktu. Czy znasz jakieś inne biblioteki, które mogą pomóc? Muszę opakować surowe dane H264 za pomocą kontenera (np. Kontenera mp4). –

+0

@ LukaszCzerwinski Napisałem swój własny kod, aby rozwiązać ten problem jakiś czas temu (w 2012 myślę). Ten kod nadal musi być poprawnie debugowany, ponieważ projekt został porzucony. Daj mi, jeśli jesteś zainteresowany, powinienem nadal mieć tego źródła. – peetonn

+0

Wow, wielkie dzięki, to byłoby wspaniale. Cieszę się z DM, jednak Twój profil mówi: "Wygląda na to, że ten użytkownik woli zachować tajemnicę na ich temat". Ponadto nie ma PM na SO, więc nie ma sposobu, aby wysłać Ci DM :) –

Powiązane problemy