请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AM62A7-Q1 工具与软件:
您好!
当我运行以下脚本将视频从 AR0823流式传输到以太网(使用 VISS 和 LDC 的 VPAC)时、我只能获得22fps、而 tiperfoverlay 使用48-49%的数据显示 VISS 和 LDC。
#!/bin/bash
MULTICASTADDR=224.1.1.1
PORT=5004
HEVC_PROFILE="main"
HEVC_LEVEL="1"
VIDEO_BITRATE=6000000
ENC_EXTRA_CONTROLS="enc,prepend_sps_and_pps_to_idr=1,video_gop_size=5,frame_level_rate_control_enable=1,video_bitrate_mode=0,vbv_buffer_size=3000,video_bitrate=${VIDEO_BITRATE}"
TEMP=$(getopt -o 'p:l:b:h' --long 'profile:,level:,bitrate:,input:,output:,help,mc:,port:' -n '$0' -- "$@")
if [ $? -ne 0 ]; then
echo 'Terminating...' >&2
exit 1
fi
eval set -- "$TEMP"
unset TEMP
while true; do
case "$1" in
'-h'|'--help')
echo "$0 - H.265 compress a JPEG file into a one second stream"
echo "Parameters:"
echo " -p main|main-still-picture|main-10 (HEVC Profile)"
echo " -l 1|2|2.1|3|3.1|4|4.1|5|5.1 (HEVC Level)"
echo " -b 0..700000000 (Video Bitrate)"
echo " --mc <multicast ip address>"
echo " --port <port number> (default 5000)"
echo " -h This help"
exit 0
shift
continue
;;
'-p'|'--profile')
case "$2" in
'main'|'Main'|'0')
HEVC_PROFILE="main"
;;
'main-still-picture'|'1')
HEVC_PROFILE="main-still-picture"
;;
'main-10'|'2')
HEVC_PROFILE="main-10"
;;
*)
HEVC_PROFILE="main"
;;
esac
echo "HEVC Profile: '$HEVC_PROFILE'"
shift 2
continue
;;
'-l'|'--level')
case "$2" in
'1'|'2'|'2.1'|'3'|'3.1'|'4'|'4.1'|'5'|'5.1')
HEVC_LEVEL="$2"
;;
*)
HEVC_LEVEL="1"
;;
esac
echo "HEVC Level: '$HEVC_LEVEL'"
shift 2
continue
;;
'-b'|'--bitrate')
echo "Video Bitrate: '$2'"
VIDEO_BITRATE=$2
shift 2
continue
;;
'mc')
MULTICASTADDR=$2
shift 2
continue
;;
'port')
PORT=$2
shift 2
continue
;;
'--')
shift
break
;;
*)
echo 'Internal error!' >&2
exit 1
;;
esac
done
#media-ctl -V '"imx219 4-0010":0 [fmt:SRGGB10_1X10/1920x1080 field:none]'
#media-ctl -V '"ar0521 1-0036":0 [fmt:SGRBG8_1X8/3840x2160 field:none]'
media-ctl -V '"ar0823 1-0010":0 [fmt:SGRBG12_1X12/3840x2160 field:none]'
gst-launch-1.0 -v -e v4l2src device=/dev/video3 io-mode=dmabuf-import do-timestamp=true \
! video/x-bayer, width=3840, height=2160, framerate=30/1, format=grbg12 \
! tiovxisp sink_0::device=/dev/v4l-subdev2 sensor-name="SENSOR_ONSEMI_AR0823" \
dcc-isp-file=/opt/imaging/ar0823/linear/dcc_viss.bin \
sink_0::dcc-2a-file=/opt/imaging/ar0823/linear/dcc_2a.bin format-msb=11 \
! tiovxldc sensor-name="SENSOR_ONSEMI_AR0823" dcc-file=/opt/imaging/ar0823/linear/dcc_ldc.bin \
! video/x-raw, format=NV12, width=3840, height=2160, framerate=30/1 \
! queue max-size-buffers=1 leaky=0 \
! tiperfoverlay title="Camera 1" \
! v4l2h265enc extra-controls=${ENC_EXTRA_CONTROLS} \
! "video/x-h265, profile=(string)${HEVC_PROFILE}, level=(string)${HEVC_LEVEL}" \
! rtph265pay config-interval=1 pt=96 \
! udpsink host=${MULTICASTADDR} auto-multicast=true port=${PORT}
当我移除 LDC 时、tiperfoverlay 展示了 VISS 68%的 CPU 使用率。
#!/bin/bash
MULTICASTADDR=224.1.1.1
PORT=5004
HEVC_PROFILE="main"
HEVC_LEVEL="1"
VIDEO_BITRATE=6000000
ENC_EXTRA_CONTROLS="enc,prepend_sps_and_pps_to_idr=1,video_gop_size=5,frame_level_rate_control_enable=1,video_bitrate_mode=0,vbv_buffer_size=3000,video_bitrate=${VIDEO_BITRATE}"
TEMP=$(getopt -o 'p:l:b:h' --long 'profile:,level:,bitrate:,input:,output:,help,mc:,port:' -n '$0' -- "$@")
if [ $? -ne 0 ]; then
echo 'Terminating...' >&2
exit 1
fi
eval set -- "$TEMP"
unset TEMP
while true; do
case "$1" in
'-h'|'--help')
echo "$0 - H.265 compress a JPEG file into a one second stream"
echo "Parameters:"
echo " -p main|main-still-picture|main-10 (HEVC Profile)"
echo " -l 1|2|2.1|3|3.1|4|4.1|5|5.1 (HEVC Level)"
echo " -b 0..700000000 (Video Bitrate)"
echo " --mc <multicast ip address>"
echo " --port <port number> (default 5000)"
echo " -h This help"
exit 0
shift
continue
;;
'-p'|'--profile')
case "$2" in
'main'|'Main'|'0')
HEVC_PROFILE="main"
;;
'main-still-picture'|'1')
HEVC_PROFILE="main-still-picture"
;;
'main-10'|'2')
HEVC_PROFILE="main-10"
;;
*)
HEVC_PROFILE="main"
;;
esac
echo "HEVC Profile: '$HEVC_PROFILE'"
shift 2
continue
;;
'-l'|'--level')
case "$2" in
'1'|'2'|'2.1'|'3'|'3.1'|'4'|'4.1'|'5'|'5.1')
HEVC_LEVEL="$2"
;;
*)
HEVC_LEVEL="1"
;;
esac
echo "HEVC Level: '$HEVC_LEVEL'"
shift 2
continue
;;
'-b'|'--bitrate')
echo "Video Bitrate: '$2'"
VIDEO_BITRATE=$2
shift 2
continue
;;
'mc')
MULTICASTADDR=$2
shift 2
continue
;;
'port')
PORT=$2
shift 2
continue
;;
'--')
shift
break
;;
*)
echo 'Internal error!' >&2
exit 1
;;
esac
done
#media-ctl -V '"imx219 4-0010":0 [fmt:SRGGB10_1X10/1920x1080 field:none]'
#media-ctl -V '"ar0521 1-0036":0 [fmt:SGRBG8_1X8/3840x2160 field:none]'
media-ctl -V '"ar0823 1-0010":0 [fmt:SGRBG12_1X12/3840x2160 field:none]'
gst-launch-1.0 -v -e v4l2src device=/dev/video3 io-mode=dmabuf-import do-timestamp=true \
! video/x-bayer, width=3840, height=2160, framerate=30/1, format=grbg12 \
! tiovxisp sink_0::device=/dev/v4l-subdev2 sensor-name="SENSOR_ONSEMI_AR0823" \
dcc-isp-file=/opt/imaging/ar0823/linear/dcc_viss.bin \
sink_0::dcc-2a-file=/opt/imaging/ar0823/linear/dcc_2a.bin format-msb=11 \
! video/x-raw, format=NV12, width=3840, height=2160, framerate=30/1 \
! queue max-size-buffers=1 leaky=0 \
! tiperfoverlay title="Camera 1" \
! v4l2h265enc extra-controls=${ENC_EXTRA_CONTROLS} \
! "video/x-h265, profile=(string)${HEVC_PROFILE}, level=(string)${HEVC_LEVEL}" \
! rtph265pay config-interval=1 pt=96 \
! udpsink host=${MULTICASTADDR} auto-multicast=true port=${PORT}
VPAC 是否支持3840x2160 @ 30fps? 如果是、如何提高第一个流水线的帧速率?
此致、
Bas Vermeulen