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?
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]
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ą.
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.
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.
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