Tworzenie strumienia Wideo (AVI) z serii obrazów

Istnieje Kamera internetowa IP, dla której jakiś czas temu napisałem klasę. NET. Jest to w zasadzie implementacja timera, która ping migawki skrypt CGI z aparatu co pięć sekund. Sama kamera jest bardzo rudamentowa, nie ma dla mnie żadnego API do pracy, jedyne co mogę zrobić programowo (zdalnie) to wywołać ten skrypt. Skrypt zwraca obraz w FORMACIE JPEG 640x480. Proste.

Teraz to, co muszę zrobić, to zrobić kilka dni z tych zdjęć i utwórz z niego strumień wideo AVI" poklatkowy", który ostatecznie zostanie osadzony na stronie internetowej. Jak mogę to zrobić z VB.NET?

Author: Josh Stodola, 2009-12-09

4 answers

. Net nie obsługuje bezpośrednio formatów wideo. Najlepszym rozwiązaniem byłoby użycie narzędzia 3rd party do generowania .avi.

Ffmpeg jest jedną z opcji. Możesz uzyskać do niego dostęp bezpośrednio za pomocą wiersza poleceń w następujący sposób:

ffmpeg -f image2 -i img%d.jpg /output/a.mpg

Trzeba by nazwać swoje obrazy img1.jpg, img2.jpg itp. Po więcej szczegółów zobacz FFmpeg faq. Powinieneś również znaleźć szczegóły w faq, aby uzyskać różne formaty wideo.

Możesz uruchomić proces z vb używając proces.Start () . Coś takiego:

Process.Start("ffmpeg.exe", "-f image2 -i img%d.jpg /output/a.mpg")
Możesz też rzucić okiem na FFmpeg-sharp lub Tao.FFmpeg, są opakowaniami. NET dla bibliotek ffmpeg. Osobiście też nie próbowałem, ale wygląda na to, że to może Ci pomóc.

Inną alternatywą byłoby spojrzenie na MEncoder , który ma podobną funkcjonalność. Powinieneś być w stanie wyszukać podobny wiersz poleceń dla tego narzędzia.

[powiązane tak pytanie: 271003]

 15
Author: Simon P Stevens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:25:03

FFMpeg ma binaria windows i jest bardzo popularny.

Tworzenie filmów z plików graficznych za pomocą ffmpeg / mencoder

Będziesz musiał sprawdzić, czy dostępne formaty wyjściowe Ci odpowiadają.

 4
Author: Pekka 웃,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-08 21:59:22

To jest wrapper C# napisany przez kogoś z Codeproject:

Http://www.codeproject.com/KB/audio-video/avifilewrapper.aspx

Ta owijka powinna dostarczyć Ci tego, czego potrzebujesz.

 1
Author: Crowe T. Robot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-08 22:04:05

Istnieje kilka narzędzi wiersza poleceń, które mogą wykonać serię obrazów i wydrukować plik AVI. Sugerowałbym, żebyś zadzwonił do jednego z nich ze swojej aplikacji.

Podałbym linki do sugestii, ale od lat nie używałem jednego.

Edit: najwyraźniej możesz to zrobić używając ffmpeg: http://ffmpeg.org/ffmpeg-doc.html

Do tworzenia wideo z wielu obrazów:

Ffmpeg-f image2-i foo-%03d.jpeg -r 12-s WXH foo.avi

The składnia foo-%03d.jpeg określa do użyj liczby dziesiętnej złożonej z trzech cyfry wyściełane zerami do wyrażenia numer sekwencji. To jest to samo składnia obsługiwana przez C printf funkcji, ale tylko formaty akceptujące normalne liczby całkowite są odpowiednie.

 0
Author: Jermismo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-08 22:12:36