NewVideoRecorder jest przechwytywania wideo wysokiej jakości zestaw narzędzi dla systemu Linux. W tej chwili obsługuje v4l1 i V4L2 urządzenia jako źródła wideo, OSS i ALSA jako źródła dźwięku. To może wyjście do QuickTime (w RTJpeg, YUV2 lub formacie RAW, a większość formatów), ffmpeg (w formacie AVI), formacie DivX, MPEG-NuppelVideo 1 i Multicast streaming / unsicast.
nvrec obejmuje głęboki buforowanie, aby zminimalizować spadki klatek, w wysokich stanach obciążenia i sprawne algorytm framedropping zachować pliku wideo tak gładkie jak to możliwe, jeśli masz do spadku klatek.
Posiada również dźwięku "nosze", aby napisać dokładną ilość dźwięku do pliku wyjściowego (to rekompensuje braku synchronizacji między zegarem kart dźwiękowych i wideo). nvrec jest napisany w sposób bardzo modułowej, aby łatwo zintegrować z istniejącymi aplikacjami, lub dodać własne formaty wyjściowe.
Silnik ten korzysta z głębokich buforów (2 sekundy +) dla dźwięku i obrazu. Wideo jest buforowane w sterowniku, aby uniknąć zbyt wielu kosztownych kopii przestrzeni użytkownika. Audio jest buforowane w buforze pierścieniowym w przestrzeni użytkownika. To jest drogie, ale neccessary, jak sterowniki OSS są często ograniczone do bardzo krótkich buforów.
Wszystkie bufory są dokładnie czas utworzenia po ich otrzymaniu: bufory wideo przez jądro i bufory audio, gettimeofday () (skompensowane aktualnej głębokości bufora jądra). Na początku, audio lub wideo jest odrzucany, aż oba są w synchronizacji, i od tej pory, tylko audio i czas utworzenia wideo w tym samym okresie jest przetwarzane.
Ponieważ nie będzie przesunięć czasowych pomiędzy wychwytywania i audio karty przechwytywania wideo, strumień audio jest dynamicznie wypaczony dokładnie tak, że odpowiednia ilość dźwięku znajduje się w pliku wyjściowym dla każdej klatki wideo pisemnej do pliku (UWAGA: W tym momencie wypaczenia dokonuje prostego algorytmu liniowego - może zrobić wiele lepiej tutaj). Prosty regulator PI reguluje wypaczenia czynnik, aby utrzymać synchronizację.
Kod stara się utrzymać wewnętrzne bufory pomiędzy 10% (aby upewnić się, że nigdy nie zabraknie danych) i 40% (aby upewnić się, że don; t mają niekontrolowane opadanie) pełna. Gdy bufor jest mniejsza niż 10% całości, to po prostu może pomieścić okres 1 ramy. Gdy bufor jest więcej niż 40% całości, stopniowo spada więcej klatek na sencond, aż do osiągnięcia stabilnego punktu.
Kod ma być bardzo modułowy, więc nie powinno być problemu dodanie rdzeń ALSA.
Obecnie pięć rdzenie wyjściowe: qtfile_core, która produkuje RTJpeg, YUV2 lub RAW zakodowane pliki QuickTime; divxfile_core, która produkuje DivX zakodowane pliki avi; nuvfile_core, która produkuje pliki NuppelVideo0.4; rtefile_core, która produkuje strumieni MPEG-1 programu; i ffmpegfile_core, która produkuje wiele typów plików, takich jak MPEG4, MPEG1, MPEG2, WMV, DV, h263 ... (zobacz dokumentację ffmpeg.sf.net).
Co nowego w tym wydaniu:
· Dodano wsparcie dla nagrywania radia (w urządzeniach z obsługą, które
Naprawiono ffmpegrec wsparcia, aktualizacji kodu do korzystania z nowego API i libavcodec nowy muxera api (CVS ffmpeg zwolnić 9.07.2004 zaznaczone)
· Poprawiono kilka błędów w zaproszeniach do v4l2 api (jądra 2.6.4).
· Dodano wsparcie dla podzielonych plików w locie, by określić wielkość każdego kawałka i miejscami nazwę używaną dla każdego pliku.
· Poprawiono kilka kompilacji ostrzeżenia. Kod kompiluje bez problemów i gcc gcc 2.95 3.3.
Szczegóły programowe:
Wersja: 20041227
Filmu: 3 Jun 15
Licencja: Wolny
Popularność: 87
Komentarze nie znaleziono