나는 OpenMAX를 사용하지 않고 라즈베리 파이 에서 비디오를 디코딩하는 예를 직접으로 찾고 있습니다.OpenMAX를 사용하지 않고 Raspberry Pi에서 비디오를 디코딩 하시겠습니까?
이 멀티미디어 소프트웨어의 다른 레이어를 설명 : 여기에 표시되지 않는 추가 계층,이다 "MMAL"레이어 (내가 믿는) OpenMAX 주위에 브로드 래퍼가있다
. (그렇지 않다면 커널 드라이버 위에 앉아있는 OpenMAX 대안이 될 것입니다.) 예를 들어, raspivid와 raspistill은 MMAL을 사용하여 작성됩니다.
입력이 원시 H.264이고 비디오의 출력이 메모리의 비디오이거나 화면의 비디오 인 비디오 디코딩 예제가 필요합니다. 내가 직접 VCHIQ를 사용하여 을하고 OpenMAX를 사용하지 않기를 바란다.
이 github 저장소 : https://github.com/raspberrypi/userland/에는 위에 표시된 모든 것 (주황색 및 녹색 상자, VCHIQ 자체 소스, VCHIQ 상단의 OpenMAX IL 구현, OpenGL 및 EGL 구현, ...). 이론적으로 시작하기에 충분해야합니다. 문제는 오픈 맥스와 멀티미디어 프레임 워크에 익숙한 사람이라 할지라도 그것을 사용하는 방법이 매우 명백하지 않다는 것입니다.
예 : vchiq_bulk_transmit()은 비디오를 디코더에 보내는 기능입니다. 그러나 형식 VCHIQ_SERVICE_HANDLE_T
의 첫 번째 인수를 초기화하는 방법은 무엇입니까? 결과는 프레임 버퍼 또는 결과 핸들에서 어디로 이동합니까?
EDIT 현상금은 어느이 작성 vchiq, 호출 시퀀스를 보여주는 API 연습 (조차하지 않는 실시 예의 비록) 또는 충분한 문서에 대한 포인터를 사용하여 비디오 디코딩의 동작 예를 제공함으로써 회수 할 수있다. 작업 예제는 무거운 여분의 현상금을 얻을 것이다 :)
OpenMAX를 사용하지 않는 특별한 이유가 있습니까? – drahnr
@drahnr : 디코딩 된 데이터를 즉시 얻을 수있는 API가 필요합니다. OpenMAX IL은 많은 버퍼를 가지고 있으며, 구현이 그것으로 무엇을 할 수 있는지에 대한 특별한 제약이 없으며, 잠재적으로 여러 프레임을 버퍼링 할 수 있으며 API를 제어 할 방법이 없습니다. 데이터를 반환하는 데 상당히 느린 구현을 보았습니다 (처리량이 여전히 높고 데이터가 방금 지연됨). ... RPM에서 초당 1/60 초 이내에 OpenMAX를 사용하여 디코딩 된 프레임을 다시 얻는 방법을 보여주는 사람이이 질문에 답을 얻고 싶다면 역시 좋을 것입니다. –
이것은 아마도 듣고 싶지만 H264 디코더를 구현하는 것은 매우 어렵습니다. 무료로 코드를 작성하는 단일 영혼에 대해서는 알지 못합니다 (500 피스 바운티를 넣었더라도). – karlphillip