Chcę wyodrębnić klatki z wideo i zastosować do niego filtry takie jak gabor/hough itp. Która biblioteka Java byłaby idealna do obsługi wszelkiego rodzaju kodowania wideo? Patrzyłem na GStreamer, JMF, Xuggler itp., Ale nie jestem w stanie zdecydować, który z nich będzie najlepszy. Chciałbym także edytować klatki i zrobić wideo z nowymi ramkami.Biblioteka przetwarzania wideo dla języka Java
Odpowiedz
Jeśli chcesz wykonywać operacje na niskim poziomie, takie jak wyodrębnianie ramek i manipulowanie nimi, to najlepszym wyborem będzie Xuggler, ponieważ interfejsy API są nastawione na tak niski poziom. Działa na ffmpeg, dzięki czemu obsługuje wszystkie rodzaje kodowania wideo.
Nie używaj JMF do niczego, jest stary, przestarzały i wadliwy - GStreamer jest dobry, ale API nadaje się bardziej do odtwarzania filmów niż manipulowania klatkami.
JMF to dobry wybór. Ale jeśli czas procesu jest ważny w twoim kodzie, lepiej użyć Xugglera. Oczywiście JMF jest bardziej ogólny niż Xuggler.
Xuggler, tak. Ale jeśli zamierzasz pracować nad wieloma procesami przetwarzania obrazu, powinieneś wybrać z OpenImaj. Ta biblioteka używa Xuggler jako swojej zależności, ale to nie wszystko, co robi. Pomyśl o posiadaniu możliwości Opencv bez braku szybkości, które dostajesz w Javie. Poza tym wszystko, czego wymaga, to dodanie uzależnienia od mavenów i jesteś gotowy. Ilość kodu jest również zmniejszona.
Uwaga: Wciąż przeglądam bibliotekę i będę na bieżąco aktualizować moją odpowiedź na temat tego, jak to działa.
Film wprowadzający: https://www.youtube.com/watch?v=TNEQ0eNqLgA
Można spróbować Marvin Framework. Używa JavaCV do kodowania wideo i dostępu do urządzenia, ale wszystkie algorytmy przetwarzania obrazu są czystą Javą.
Ładowanie wideo i przetwarzanie klatek w czasie rzeczywistym jest bardzo łatwe, jak pokazano w poniższym przykładzie wykrywania krawędzi. Kod
Źródło:
import static marvin.MarvinPluginCollection.*;
public class SimpleVideoProcessing extends JFrame implements Runnable{
private MarvinVideoInterface videoAdapter = new MarvinJavaCVAdapter();
private MarvinImagePanel videoPanel = new MarvinImagePanel();
private MarvinImage videoFrame, videoOut = new MarvinImage(640,480);
public SimpleVideoProcessing() throws MarvinVideoInterfaceException{
super("Simple Video Processing using Marvin");
add(videoPanel);
// Load video file and start the processing thread
videoAdapter.loadResource("./res/snooker.wmv");
new Thread(this).start();
setSize(640,500);
setVisible(true);
}
public void run() {
try {
while(true){
// Request, process and show the video frame.
videoOut.clear();
videoFrame = videoAdapter.getFrame();
prewitt(videoFrame.clone(), videoOut);
videoPanel.setImage(videoOut);
}
} catch (MarvinVideoInterfaceException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws MarvinVideoInterfaceException {
new SimpleVideoProcessing().setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
- 1. Biblioteka SNMP dla języka Java
- 2. biblioteka wideo java p2p?
- 3. Biblioteka przetwarzania obrazu Haskell?
- 4. Czy istnieje biblioteka klienta CalDAV dla języka Java?
- 5. Biblioteka zbiorczego planowania rozproszonego ogólnego przeznaczenia dla języka Java
- 6. opcje przetwarzania obrazu/wideo
- 7. Biblioteka C++ do przetwarzania sygnałów
- 8. ARFF do przetwarzania języka naturalnego
- 9. Biblioteka kamery internetowej dla języka C w systemie Linux?
- 10. Biblioteka SSH dla Java
- 11. Biblioteka WebP dla java?
- 12. Dobra biblioteka programowania liniowego dla języka C#?
- 13. biblioteka przetwarzania wiersza poleceń - getopt
- 14. Biblioteka vs Rozszerzenie języka
- 15. Czy istnieje parser Java dla języka Java?
- 16. Podstawowa biblioteka korekcyjna języka Python
- 17. Statystyki języka Java
- 18. Biblioteka Java SSH dla Androida?
- 19. Alternatywa dla licznika Pythona dla języka Java
- 20. Biblioteka przetwarzania mowy w Pythonie dla mowie do tekstu
- 21. Interfejs API/biblioteka wykrywania języka
- 22. Biblioteki śledzenia twarzy dla języka Java lub języka Python
- 23. Google App Engine dla języka Java, co to jest .Net?
- 24. Jaka jest najlepsza biblioteka przetwarzania obrazów JavaScript?
- 25. Praca kolejkowanie biblioteka/oprogramowanie Java
- 26. Najczęściej używany moduł Pythona do przetwarzania wideo?
- 27. Biblioteka edycji wideo w IOS
- 28. Biblioteka Pythona do dzielenia wideo
- 29. Jaśmin dla języka C# i/lub Java
- 30. Biblioteka tłumaczeń w języku Java
Dzięki! Domyślam się, że to Xuggler. Wygląda również na to, że OpenCV dla Java można ręcznie skonfigurować http://answers.opencv.org/question/2137/wrapping-opencv-with-desktop-java-building-for-64/ - wszelkie pomysły na to, czy byłoby lepiej ? – abhishek
Nie korzystałem z OpenCV, więc nie mogę tego komentować, ale prawdopodobnie pochylę się w kierunku Xugglera, ponieważ jest to czysty interfejs API języka Java, który powinien ułatwić zadanie. – berry120