Pracuję nad aplikacją, która musi przesłać wideo zakodowane w formacie H.264 w czasie rzeczywistym przez UDP (rodzaj połączenia wideo).Kodowanie H.264 NAL/podział plasterka
Niedawno przeszliśmy na sprzętowy koder, który obsługuje tylko ograniczoną liczbę profili H.264. W rezultacie każda zakodowana klatka wideo składa się teraz z pojedynczego NALu. Dokładniej, w przypadku ramek IDR (klucz) koder generuje SSP, PSP i pojedynczy segment IDR, dla innych - pojedynczy przekrój inny niż IDR.
Teraz moim celem jest podzielenie kawałka NALU na kilka mniejszych, ponieważ w przypadku utraty pakietów, jeśli NALu nie może być kompletnie złożony - jest całkowicie stracony. Co najmniej muszę podzielić wycinek przestrzennie, tj. Umieścić zakresy makrobloków w różnych NALus. Jeśli to możliwe - chciałbym również wyodrębnić warstwy jakości, aby warstwa bazowa mogła być chroniona przez więcej nadmiarowych pakietów (FEC).
Uwaga: nie mówię o transkodowaniu. Chodzi o przepakowywanie/ponowne formatowanie, lokalizowanie fragmentów danych definicji makrobloku i umieszczanie ich w inny sposób.
Próbuję teraz przeanalizować odpowiednie nagłówki danych: SPS, PPS i zakodowane plasterki, wykorzystując zarówno standardowe specyfikacje H.264, jak i niektóre kody dekoderów open source. Zadanie wydaje się możliwe, choć trochę trudne, z wieloma szczegółami technicznymi.
Moje pytanie brzmi: czy jest to znany problem? Czy jest jakieś API/biblioteka, które robi dokładnie to?
Powinieneś opublikować model enkodera sprzętowego, ktoś może wiedzieć, jak go skonfigurować, aby wygenerować NALu mniejszy niż wartość (np. MTU) .W przypadku FEC możesz użyć RTP. Możesz zobaczyć [RFC 6184] (https: // tools .ietf.org/html/rfc6184 # sekcja-6.1) dla typowych reguł pakietowania i [RFC 5109] (https: //tools.i etf.org/html/rfc5109) dla FEC. – aergistal
@aergistal - dzięki, już używamy FEC i przesyłamy przez RTP (używając ffmpeg). Ta sytuacja jest jednak całkowicie lub prawie całkowita, albo cały NALu jest w pełni odzyskiwany, albo nie. Podczas gdy chciałbym mieć kilka mniejszych NALusów, aby móc odzyskać część kadru. – valdo
@valdo Co masz na myśli przez "czy jest to znany problem?" – ARK