szukam skuteczny sposób, aby wykonać następujące czynności:Wiele źródeł wideo połączone w jeden
Korzystanie kilka filmów źródłowych (w przybliżeniu tej samej długości), muszę generować wyjście wideo, które składa się z wszystkich oryginalne źródła, z których każdy działa na swoim własnym obszarze (na przykład kilka PIP sw kilku różnych rozmiarach). Rezultat końcowy jest taki, że wszystkie oryginały biegną obok siebie, każde w swoim obszarze/polu.
Źródłem i wyjściem musi być flv
, a platforma, której używam, to Windows (programista na Windows 7 64bit, wdrożenie na serwerze Windows 2008).
Spojrzałem na avisynth, ale niestety nie może obsłużyć flv
i nie z wtyczek i splitterów flv, które próbowałem pracował.
Mój obecny proces wykorzystuje ffmpeg w następujący sposób:
- Zastosowanie ffmpeg wygenerować 25 PNG na sekundę na wideo, zmiana rozmiaru oryginału w zależności od potrzeb.
- Użyj przestrzeni nazw
System.Drawing
, aby połączyć każdy zestaw ramek w nowy obraz, zaczynając od statycznego tła, a następnie ładując każdą klatkę do obiektuImage
i rysując na obiekcieGraphics
- to daje mi połączone ramki. - Użyj ffmpeg, aby połączyć wygenerowane obrazy z wideo.
Wszystko to jest bardzo intensywne IO (co jest obecnie wąskim gardłem w przetwórstwie) i uważam, że musi istnieć skuteczniejszy sposób osiągnięcia mojego celu. Nie mam dużego doświadczenia z przetwarzaniem wideo i nie wiem, jakie opcje są dostępne.
Czy ktoś może zaproponować bardziej efektywny sposób przetwarzania?
Dzięki za odpowiedź - czy masz przykład wiersza poleceń obraz w obrazie? – Oded
Świetny drugi przykład - jak określić więcej niż 2 źródła? Czy musiałbym wywoływać go wiele razy z różnymi nakładkami? – Oded
Wygląda na to, że 'overlay' nie zmienia rozmiaru oryginałów - zakładam, że będę musiał użyć' scale' do tego? – Oded