Mam problem z generowaniem strumienia FLV. Opracowałem system DVR, powinien być w stanie przesyłać strumieniowo wideo w formacie FLV (aby odtwarzać je w Actionscript NetStream). Dostaję wideo z kodera w surowych jednostkach NAL H264 (0x00 0x00 0x00 0x01), również rozpoznaję kodowany IDR ramki lub nie IDR.Jak wygenerować strumień FLV z surowego h264, który może być odtwarzany przez Actionscript NetStream?
Moje rozwiązanie do tworzenia strumienia FLV (w oparciu o Adobe specyfikacji: Video Format pliku Specification Version 10) został:
- czekać na IDR ramy;
- nagłówek put FLV
- umieścić PrevTagSize (0)
- put tag tag wideo FLV z wizyjne z AVCVIDEODATA
- umieścić PrevTagSize
- powtórz kroki od 4,5 aż do końca transmisji strumieniowej.
Stream wygląda dobrze i mogą być odtwarzane przez ffplay, MPlayer, VLC, itp Ale nie grał przez gracza na podstawie ActionScript NetStream.
Więc mam uzyskać dane surowe H264 i przekonwertować go do FLV za pomocą ffmpeg:
ffmpeg -i -f h264 d1.h264 -vcodec skopiowania -f flv d1.flv
i spróbuj obliczyć zarówno flv's my, jak i ffmpeg.
Przede wszystkim widzę, że ffmpeg dodaje nagłówek sekwencji AVC, bezpośrednio po nagłówku FLV. Zacząłem robić to samo, ale NetStream wciąż nie obsługuje mojego strumienia, a także inni gracze przestali go odtwarzać.
OK, a następnie kontynuuję porównanie flv. Teraz widzę, że nagłówki jednostek NAL w zakodowanym FLFmpeg nieco się zmieniły, ale nie mogę zrozumieć, co oznaczają zmiany. Czytam wiele specyfikacji, ale nic nie pomaga. Czy ktoś mógł mi to wyjaśnić?
Fo przykład moje jednostki NAL wygląda tak: 00 00 00 01 xx xx ... - dla wszystkich jednostek
FFmpeg NALS: 00 00 [14 BA] 61 9A ... - non IDR (dwa bajtów) 00 00 [7A 02] 65 88 ... - IDR (zmienna dwubajtowa) 00 00 00 40 06 05 ... - SEI
Czy dodano licznik lub cokolwiek innego?
Będzie szczęśliwy widząc żadnych pomysłów, linki itp
ja pracuję nad MyXer FLV i zastanawiam się, jak przechowywać dane x264_nal_t *, które otrzymałem podczas kodowania za pomocą x264_encoder_encode. Czy Twój strumień działa? czy możesz nieco wyjaśnić swoje podejście? – pollux