나는 h264, hevc 및 기타 형식에 대한 하드웨어 디코더가 있는 Orangepi5를 가지고 있습니다. 저는 armibian Armbian 23.5.5 Jammy CLI 커널 레거시 5.10.160을 사용하고 있습니다. 커스텀을 설치했어요RockChip MPP를 사용하는 ffmpeg이렇게 하면 이러한 디코더가 활성화됩니다.
이러한 하드웨어 디코더를 사용하여 루프백 장치를 만들려고 합니다 /dev/video0
. 예를 들어 다음 명령을 사용합니다.
ffmpeg -rtsp_transport tcp -y -c:v h264_rkmpp_decoder -re -i rtsp://admin:passwd@ipcam-front-up:554/stream=0 -c:v rawvideo -pix_fmt yuv420p -f v4l2 /dev/video0
효과가있다 하지만살펴 보면 htop
프로세스 그룹 번호를 통해 이를 생성한 기본 스레드/프로세스 외에 12개의 프로세스/스레드가 있습니다.평균 CPU 사용량의 약 7%.
아무것도 트랜스코딩하지 않는 경우 이유는 무엇입니까? 예를 들어, 다음을 사용하면 다음과 같은 결과만 얻습니다.평균 CPU 사용량의 1%입니다.
ffmpeg -rtsp_transport tcp -y -c:v h264_rkmpp_decoder -i rtsp://admin:passwd@ipcam-front-up:554/stream=0 -f null -
왜 -f v4l2
그렇게 많은 오버헤드가 있습니까? 아니면 내가 뭔가 잘못하고 있는 걸까요? 다른 소프트웨어에서 스트림을 사용할 수 있도록 하고 싶습니다(스포츠) 하드웨어 디코더를 직접 사용할 수 없습니다.