20240621在飞凌的OK3588-C开发板linux系统的CAM3上接OV5645录像

本文主要是介绍20240621在飞凌的OK3588-C开发板linux系统的CAM3上接OV5645录像,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

20240621在飞凌的OK3588-C开发板linux系统的CAM3上接OV5645录像
2024/6/21 19:57


开发板:OK3588-C
SDK:linux R4/Buildroot

v4l2-ctl --list-devices

v4l2-ctl --list-formats-ext -d /dev/video16

gst-launch-1.0 v4l2src device=/dev/video16 num-buffers=100 ! video/x-raw,format=NV12, width=640,height=480 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=13850_h264.mp4 t. ! queue ! waylandsink

gst-launch-1.0 v4l2src device=/dev/video16 num-buffers=100 ! video/x-raw,format=NV12, width=640,height=480 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=ov5645_640x480.mp4 t. ! queue ! waylandsink
gst-launch-1.0 v4l2src device=/dev/video16 num-buffers=1000 ! video/x-raw,format=NV12, width=1920,height=1080 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=ov5645_1920x1080-1000f.mp4 t. ! queue ! waylandsink
gst-launch-1.0 v4l2src device=/dev/video16 num-buffers=1000 ! video/x-raw,format=NV12, width=1920,height=1080 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=ov5645_1920x1080_1000f.mp4 t. ! queue ! waylandsink


5W分辨率录像:2592x1944
gst-launch-1.0 v4l2src device=/dev/video16 num-buffers=1000 ! video/x-raw,format=NV12, width=2592,height=1944 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=ov5645_2592x1944_1000f.mp4 t. ! queue ! waylandsink


录像指令使用OV13850的指令


root@ok3588:/# 
root@ok3588:/# v4l2-ctl --list-devices
rk_hdmirx (fdee0000.hdmirx-controller):
    /dev/video58

rkisp-statistics (platform: rkisp):
    /dev/video47
    /dev/video48
    /dev/video56
    /dev/video57

rkcif-mipi-lvds (platform:rkcif):
    /dev/media0
    /dev/media1
    /dev/media2
    /dev/media3
    /dev/media4

rkcif (platform:rkcif-mipi-lvds):
    /dev/video0
    /dev/video1
    /dev/video2
    /dev/video3
    /dev/video4
    /dev/video5
    /dev/video6
    /dev/video7

rkcif (platform:rkcif-mipi-lvds2):
    /dev/video16
    /dev/video17
    /dev/video18
    /dev/video19
    /dev/video20
    /dev/video21
    /dev/video22
    /dev/video23

rkisp_mainpath (platform:rkisp0-vir0):
    /dev/video40
    /dev/video41
    /dev/video42
    /dev/video43
    /dev/video44
    /dev/video45
    /dev/video46
    /dev/media5

rkisp_mainpath (platform:rkisp0-vir1):
    /dev/video49
    /dev/video50
    /dev/video51
    /dev/video52
    /dev/video53
    /dev/video54
    /dev/video55
    /dev/media6

root@ok3588:/# 
root@ok3588:/# 
root@ok3588:/# v4l2-ctl --list-formats-ext -d /dev/video0
ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture Multiplanar

    [0]: 'NV16' (Y/CbCr 4:2:2)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [1]: 'NV61' (Y/CrCb 4:2:2)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [2]: 'NV12' (Y/CbCr 4:2:0)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8

    [3]: 'NV21' (Y/CrCb 4:2:0)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [4]: 'YUYV' (YUYV 4:2:2)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [5]: 'YVYU' (YVYU 4:2:2)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [6]: 'UYVY' (UYVY 4:2:2)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [7]: 'VYUY' (VYUY 4:2:2)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [8]: 'RGB3' (24-bit RGB 8-8-8)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [9]: 'RGBP' (16-bit RGB 5-6-5)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [10]: 'BGRH' (18-bit BGRX 6-6-6-14)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [11]: 'RGGB' (8-bit Bayer RGRG/GBGB)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [12]: 'GRBG' (8-bit Bayer GRGR/BGBG)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [13]: 'GBRG' (8-bit Bayer GBGB/RGRG)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [14]: 'BA81' (8-bit Bayer BGBG/GRGR)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [15]: 'RG10' (10-bit Bayer RGRG/GBGB)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [16]: 'BA10' (10-bit Bayer GRGR/BGBG)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [17]: 'GB10' (10-bit Bayer GBGB/RGRG)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [18]: 'BG10' (10-bit Bayer BGBG/GRGR)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [19]: 'RG12' (12-bit Bayer RGRG/GBGB)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [20]: 'BA12' (12-bit Bayer GRGR/BGBG)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [21]: 'GB12' (12-bit Bayer GBGB/RGRG)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [22]: 'BG12' (12-bit Bayer BGBG/GRGR)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [23]: 'BYR2' (16-bit Bayer BGBG/GRGR)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [24]: 'GB16' (16-bit Bayer GBGB/RGRG)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [25]: 'GR16' (16-bit Bayer GRGR/BGBG)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [26]: 'RG16' (16-bit Bayer RGRG/GBGB)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [27]: 'Y16 ' (16-bit Greyscale)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [28]: 'GREY' (8-bit Greyscale)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [29]: 'EBD8' (Embedded data 8-bit)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [30]: 'SPD6' (Shield pix data 16-bit)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [31]: 'Y12 ' (12-bit Greyscale)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
    [32]: 'Y10 ' (10-bit Greyscale)
        Size: Stepwise 64x64 - 2112x1568 with step 8/8
V12, width=1920,height=1080, framerate=30/1 ! waylandsink! video/x-raw, format=NV
Setting pipeline to PAUSED ...
Using mplane plugin for capture 
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Device '/dev/video0' is busy
Additional debug info:
../sys/v4l2/gstv4l2object.c(4056): gst_v4l2_object_set_format_full (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Call to S_FMT failed for NV12 @ 1920x1080: Device or resource busy
Execution ended after 0:00:00.003145626
Setting pipeline to NULL ...
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
Freeing pipeline ...
root@ok3588:/# 
root@ok3588:/# v4l2-ctl --list-devices
rk_hdmirx (fdee0000.hdmirx-controller):
    /dev/video58

rkisp-statistics (platform: rkisp):
    /dev/video47
    /dev/video48
    /dev/video56
    /dev/video57

rkcif-mipi-lvds (platform:rkcif):
    /dev/media0
    /dev/media1
    /dev/media2
    /dev/media3
    /dev/media4

rkcif (platform:rkcif-mipi-lvds):
    /dev/video0
    /dev/video1
    /dev/video2
    /dev/video3
    /dev/video4
    /dev/video5
    /dev/video6
    /dev/video7

rkcif (platform:rkcif-mipi-lvds2):
    /dev/video16
    /dev/video17
    /dev/video18
    /dev/video19
    /dev/video20
    /dev/video21
    /dev/video22
    /dev/video23

rkisp_mainpath (platform:rkisp0-vir0):
    /dev/video40
    /dev/video41
    /dev/video42
    /dev/video43
    /dev/video44
    /dev/video45
    /dev/video46
    /dev/media5

rkisp_mainpath (platform:rkisp0-vir1):
    /dev/video49
    /dev/video50
    /dev/video51
    /dev/video52
    /dev/video53
    /dev/video54
    /dev/video55
    /dev/media6

root@ok3588:/# 
root@ok3588:/# 
root@ok3588:/# 
root@ok3588:/# v4l2-ctl --list-formats-ext -d /dev/video16
ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture Multiplanar

    [0]: 'NV16' (Y/CbCr 4:2:2)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [1]: 'NV61' (Y/CrCb 4:2:2)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [2]: 'NV12' (Y/CbCr 4:2:0)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [3]: 'NV21' (Y/CrCb 4:2:0)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [4]: 'YUYV' (YUYV 4:2:2)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [5]: 'YVYU' (YVYU 4:2:2)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [6]: 'UYVY' (UYVY 4:2:2)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [7]: 'VYUY' (VYUY 4:2:2)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [8]: 'RGB3' (24-bit RGB 8-8-8)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [9]: 'RGBP' (16-bit RGB 5-6-5)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [10]: 'BGRH' (18-bit BGRX 6-6-6-14)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [11]: 'RGGB' (8-bit Bayer RGRG/GBGB)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [12]: 'GRBG' (8-bit Bayer GRGR/BGBG)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [13]: 'GBRG' (8-bit Bayer GBGB/RGRG)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [14]: 'BA81' (8-bit Bayer BGBG/GRGR)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [15]: 'RG10' (10-bit Bayer RGRG/GBGB)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [16]: 'BA10' (10-bit Bayer GRGR/BGBG)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [17]: 'GB10' (10-bit Bayer GBGB/RGRG)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [18]: 'BG10' (10-bit Bayer BGBG/GRGR)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [19]: 'RG12' (12-bit Bayer RGRG/GBGB)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [20]: 'BA12' (12-bit Bayer GRGR/BGBG)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [21]: 'GB12' (12-bit Bayer GBGB/RGRG)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [22]: 'BG12' (12-bit Bayer BGBG/GRGR)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [23]: 'BYR2' (16-bit Bayer BGBG/GRGR)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [24]: 'GB16' (16-bit Bayer GBGB/RGRG)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [25]: 'GR16' (16-bit Bayer GRGR/BGBG)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [26]: 'RG16' (16-bit Bayer RGRG/GBGB)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [27]: 'Y16 ' (16-bit Greyscale)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [28]: 'GREY' (8-bit Greyscale)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [29]: 'EBD8' (Embedded data 8-bit)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [30]: 'SPD6' (Shield pix data 16-bit)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [31]: 'Y12 ' (12-bit Greyscale)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
    [32]: 'Y10 ' (10-bit Greyscale)
        Size: Stepwise 64x64 - 1920x1080 with step 8/8
NV12, width=1920,height=1080, framerate=30/1 ! waylandsink! video/x-raw, format=N
Setting pipeline to PAUSED ...
Using mplane plugin for capture 
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:01:29.280516303
Setting pipeline to NULL ...
Freeing pipeline ...
andsink264parse ! qtmux ! filesink location=ov5645_640x480.mp4 t. ! queue ! wayla
Setting pipeline to PAUSED ...
Using mplane plugin for capture 
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
Redistribute latency...
Got EOS from element "pipeline0".
Execution ended after 0:00:03.377283465
Setting pipeline to NULL ...
Freeing pipeline ...
! queue ! waylandsinkqtmux ! filesink location=ov5645_1920x1080—_1000f.mp4 t. !! 
Setting pipeline to PAUSED ...
Using mplane plugin for capture 
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
Redistribute latency...
Got EOS from element "pipeline0".
Execution ended after 0:00:33.345015225
Setting pipeline to NULL ...
Freeing pipeline ...
root@ok3588:/# 


由于OV5645是5W像素的,1920*1080/1080p分辨率录像只获取了40%的像素。
测试5W像素录像,需要改底层驱动!

Z:\OK3588_Linux_fs\kernel\drivers\media\i2c\ov5645.c

static int ov5645_entity_init_cfg(struct v4l2_subdev *subdev,
                  struct v4l2_subdev_pad_config *cfg)
{
    struct v4l2_subdev_format fmt = { 0 };

    fmt.which = cfg ? V4L2_SUBDEV_FORMAT_TRY : V4L2_SUBDEV_FORMAT_ACTIVE;
    fmt.format.width = 1920;
    fmt.format.height = 1080;

    ov5645_set_format(subdev, cfg, &fmt);

    return 0;
}

修改为:

static int ov5645_entity_init_cfg(struct v4l2_subdev *subdev,
                  struct v4l2_subdev_pad_config *cfg)
{
    struct v4l2_subdev_format fmt = { 0 };

    fmt.which = cfg ? V4L2_SUBDEV_FORMAT_TRY : V4L2_SUBDEV_FORMAT_ACTIVE;
    fmt.format.width = 2592;
    fmt.format.height = 1944;

    ov5645_set_format(subdev, cfg, &fmt);

    return 0;
}


viewpro@viewpro-ThinkBook-16-G5-IRH:~/OK3588_Linux_fs$ 
viewpro@viewpro-ThinkBook-16-G5-IRH:~/OK3588_Linux_fs$ sudo ./build.sh BoardConfig-linuxfs-ok3588.mk
switching to board: /home/viewpro/OK3588_Linux_fs/device/forlinx/ok3588/BoardConfig-linuxfs-ok3588.mk
viewpro@viewpro-ThinkBook-16-G5-IRH:~/OK3588_Linux_fs$ 
viewpro@viewpro-ThinkBook-16-G5-IRH:~/OK3588_Linux_fs$ sudo ./build.sh


root@ok3588:/# v4l2-ctl --list-formats-ext -d /dev/video16
ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture Multiplanar

    [0]: 'NV16' (Y/CbCr 4:2:2)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [1]: 'NV61' (Y/CrCb 4:2:2)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [2]: 'NV12' (Y/CbCr 4:2:0)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8

    [3]: 'NV21' (Y/CrCb 4:2:0)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [4]: 'YUYV' (YUYV 4:2:2)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [5]: 'YVYU' (YVYU 4:2:2)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [6]: 'UYVY' (UYVY 4:2:2)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [7]: 'VYUY' (VYUY 4:2:2)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [8]: 'RGB3' (24-bit RGB 8-8-8)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [9]: 'RGBP' (16-bit RGB 5-6-5)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [10]: 'BGRH' (18-bit BGRX 6-6-6-14)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [11]: 'RGGB' (8-bit Bayer RGRG/GBGB)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [12]: 'GRBG' (8-bit Bayer GRGR/BGBG)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [13]: 'GBRG' (8-bit Bayer GBGB/RGRG)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [14]: 'BA81' (8-bit Bayer BGBG/GRGR)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [15]: 'RG10' (10-bit Bayer RGRG/GBGB)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [16]: 'BA10' (10-bit Bayer GRGR/BGBG)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [17]: 'GB10' (10-bit Bayer GBGB/RGRG)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [18]: 'BG10' (10-bit Bayer BGBG/GRGR)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [19]: 'RG12' (12-bit Bayer RGRG/GBGB)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [20]: 'BA12' (12-bit Bayer GRGR/BGBG)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [21]: 'GB12' (12-bit Bayer GBGB/RGRG)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [22]: 'BG12' (12-bit Bayer BGBG/GRGR)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [23]: 'BYR2' (16-bit Bayer BGBG/GRGR)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [24]: 'GB16' (16-bit Bayer GBGB/RGRG)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [25]: 'GR16' (16-bit Bayer GRGR/BGBG)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [26]: 'RG16' (16-bit Bayer RGRG/GBGB)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [27]: 'Y16 ' (16-bit Greyscale)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [28]: 'GREY' (8-bit Greyscale)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [29]: 'EBD8' (Embedded data 8-bit)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [30]: 'SPD6' (Shield pix data 16-bit)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [31]: 'Y12 ' (12-bit Greyscale)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
    [32]: 'Y10 ' (10-bit Greyscale)
        Size: Stepwise 64x64 - 2592x1944 with step 8/8
root@ok3588:/#


参考资料:
gst-launch-1.0 v4l2src device=/dev/video40 num-buffers=100 ! video/x-raw,format=NV12, width=640,height=480 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=13850_h264.mp4 t. ! queue ! waylandsink

gst-launch-1.0 v4l2src device=/dev/video40 num-buffers=100 ! video/x-raw,format=NV12, width=640,height=480 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=ov5645_640x480.mp4 t. ! queue ! waylandsink
gst-launch-1.0 v4l2src device=/dev/video40 num-buffers=1000 ! video/x-raw,format=NV12, width=1920,height=1080 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=ov5645_1920x1080-1000f.mp4 t. ! queue ! waylandsink
gst-launch-1.0 v4l2src device=/dev/video40 num-buffers=1000 ! video/x-raw,format=NV12, width=1920,height=1080 ! tee name=t ! queue ! mpph264enc ! queue ! h264parse ! qtmux ! filesink location=ov5645_1920x1080_1000f.mp4 t. ! queue ! waylandsink

这篇关于20240621在飞凌的OK3588-C开发板linux系统的CAM3上接OV5645录像的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1083407

相关文章

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全