2012-06-20 32 views
8

Chcę ekranu nagrywania (wykonując 15 zrzutów ekranu na sekundę). W tej części wiem, jak to zrobić. Ale nie wiem, jak to napisać w popularnym formacie wideo. Najlepszą opcją, jaką znalazłem, jest zapisanie klatek do oddzielnych plików PNG i użycie menadżera poleceń, który może przekonwertować je na wiele formatów wyjściowych. Ale może ktoś ma inny pomysł?Programowanie rejestratora ekranu - problemy z wyjściami

Wymagania:

  • musi zostać rozwiązania wieloplatformowe (używam Darmowe Pascal/Lazarus). Windows, Linux, MacOS
  • Czy istnieje kilka bibliotek do tego?
  • Może to być złożona aplikacja dla linii poleceń, która również służy do nagrywania ekranu, ale muszę mieć możliwość edycji klatek przed konwersją całych nieprzetworzonych danych do popularnego formatu wideo.
  • Wszystkie materiały, które mogą mi dać jakiś pomysł, są mile widziane. API, biblioteki, cokolwiek, nawet w innych językach niż FPC (próbowałem przepisać lub znaleźć jakiś odpowiednik)
  • Rozważam również zapisywanie klatek do formatu RAW wideo, a następnie użycie Mencodera (on może sobie z tym poradzić) lub innego rozwiązania, ale może „t znaleźć żadnego API/doc dla wideo danych RAW

Pozdrawiam

+0

[ffmpeg] (http://ffmpeg.org/) jest wieloplatformowy, na licencji LGPL lub GPL, niedawno zaktualizowany. – Argalatyr

+0

Wygląda jak projekt Mencoder. Mam więc rozwiązania do kodowania wyjściowego. Ale jak przygotować dane wejściowe dla tych enkoderów? Szukam czegoś innego niż seria plików PNG – Dibo

+0

The [docs] (http://ffmpeg.org/faq.html#How-do-I-encode-single-pictures-into-movies_003f) opisują kodowanie z obrazu klatki do mpeg. Czy to nie zrobi tego, czego chcesz? – Argalatyr

Odpowiedz

4

Argalatyr wspomniane już ffmpeg.

Istnieją dwa sposoby, które można dostać się do pracy:

  1. Wg tarła o nowy proces. Wszystko, co musisz zrobić, to przygotować właściwe wejście (na przykład seria obrazów JPEG) i odpowiednie parametry wiersza poleceń. Następnie wystarczy zadzwonić do ffmpeg.exe i poczekać, aż się zakończy.

  2. ffmpeg korzysta z niektórych bibliotek dll, które wykonują rzeczywistą pracę. Możesz używać tych bibliotek dll bezpośrednio z poziomu aplikacji Delphi. To trochę więcej pracy, ponieważ jest bardziej niskopoziomowy, ale ostatecznie da ci lepszą kontrolę nad tym, co się dzieje i co pokazujesz użytkownikowi podczas przetwarzania.

Oto niektóre rozwiązania, aby sprawdzić:

+1

+1 świetne sugestie. – Argalatyr

+0

Dziękuję wszystkim! Rozwiązanie DLL wygląda obiecująco. Sprawdzam to: – Dibo

+0

@Wouter: możesz edytować swoją odpowiedź teraz, gdy ktoś usunął moją (wcześniejszą) odpowiedź jako nic więcej niż komentarz. Wydaje mi się niesprawiedliwe, ale to są przerwy. – Argalatyr

-1

Było trochę wcześniej dyskusja ze składnikiem Delphi here. To bardzo prosty komponent, który czasami generuje dziwne filmy. Może początek.

+0

Widziałeś pierwsze wymagania PO? "cross-platform" – Argalatyr