문제

얼마 전에 나는 다음과 같은 일을 해야하는 프로젝트를 시작했습니다.

  • 비디오 재생 :
    • 공통 형식으로 (AVI, MPEG, XVID 등)
    • 스트림을 프로그래밍 방식으로 일시 중지하고 재배치 할 수 있습니다.
    • 재생 속도를 설정할 수 있습니다 (필수는 아니지만 바람직하지 않음)
  • 재생 구성 요소를 통해 사용자 정의 그래픽 (비디오와 동기화)을 페인트하겠습니다.
  • 현재 프레임에 래스터 이미지로 액세스 할 수 있습니다 (필수는 아니지만 바람직하지 않음).

또한 사용하기 쉽습니다 (예 : 시각적 구성 요소 지향적, 나는 멀티미디어 스트림 내부를 많이 다루고 싶지 않습니다).

이미 Java로 작성된 관련 코드를 작성했듯이, 내가 찾은 모든 Java 라이브러리 (jmf, fmj, jvlc, jffmpeg, gstreamer-java)를 시도했지만 아무도 내 어려운 요구 사항을 모두 만족시키지 못했습니다 (예 : 저를 허용 한 사람은 아무도 만족하지 않았습니다. 프레임 위에 그리기 위해 멈출 수 없거나 재배치 할 수 없었습니다. 완전한 기능을 갖춘 것은 구식 등이있었습니다. 그래서 프로젝트를 보류했습니다.

이제 나는 컴백을 위해 분위기를 받고 있으며 다른 언어로 코드를 다시 작성하는 것이 마음에 들지 않습니다 (Java와 동일하거나 동일한 레벨의 수준이지만 C 또는 C ++가 아니라는 것은 너무 게으르다 : -P). 그것은 좋은 GUI 프레임 워크 또는 리치 클라이언트 플랫폼도 자유롭게 사용할 수 있습니다. Linux에서 개발하고 테스트하는 것을 좋아하기 때문에 Multiplatform이되는 것이 좋습니다. 그러나 더 많은 잠재 고객에게 다가 가고 싶습니다. 따라서 Windows를 대상으로 할 수 있어야합니다.

그렇다면 어떤 언어와 프레임 워크를 추천 하시겠습니까?

도움이 되었습니까?

해결책

나는 OpenCV 라이브러리를 사용하겠습니다. 필요한 모든 기능이 있습니다 : 형식 지원, 프레임 페치, 프레임 수정 등. 설치 안내서 그리고 일부 샘플.

다른 팁

QT의 포논. QT는 Java AS에서도 사용할 수 있습니다 QT Jambi.

Windows 만 가기를 완전히 두려워하지 않으면 WPF는 거의 모든 것이 아니라 거의 모든 요구에 부응해야합니다.

C# 및 모든 .NET 언어로 사용할 수 있습니다.

고려할 수있는 또 다른 프레임 워크는 MLT 프레임 워크입니다. http://mltframework.org/

훌륭한 디자인을 가지고 있으며 C로 작성되었으며 언어 바인딩 (Java, Perl, Php, Python, Ruby, Tcl)에 SWIG를 사용합니다. 사람들이 대부분의 주요 플랫폼에서 실행 한 적이 있음을 알고 있습니다.

그것이 가능한 것을 이해하려면 멋진 nle kdenlive를 확인하십시오. 가장 활발한 사용자입니다.

당신은 당신이 gstreamer-java를 시도했다고 말합니다. 아마도 바인딩이 그다지 좋지 않습니까? 나는 GSTREAMER가 당신이 요구하는 모든 것을 할 수 있다고 확신합니다. 아마도 당신은 대신 파이썬 바인딩을 확인해야 할 것입니다. Python은 Gstreamer 개발자의 일류 시민이므로 바인딩은 항상 완전하고 최신 상태 여야합니다.

Python에는 여러 개의 크로스 플랫폼 GUI 프레임 워크가 있습니다. 개인적으로 나는 Glade를 사용하여 GUI를 쉽게 빌드하기 쉽기 때문에 libglade를 사용하는 GTK를 좋아하며 XML 파일 (및 GTK도 Windows에서 실행되므로 문제가 없습니다). 다른 것을 선호한다면 QT, WXWIDGETS 및 TK가 있으며 모두 Linux와 Windows에서 실행됩니다 (그리고 MacOSX도 가정합니다).

임베디드 웹 브라우저는 명시된 요구 사항을 처리합니다.

  • 비디오 재생 (MPLAYER 또는 VLC 플러그인 사용)
  • 재생을 제어하기위한 고급 언어 (JavaScript)
  • 오버레이/GUI (HTML + CSS + PNG/SVG)

현재 프레임이 더 어려워지기 위해서는 디스크에 프레임을 덤프하려면 사용자 정의 FFMPEG가 필요할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top