这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » RK3588开发板--ffmpeg开发系列之一——开发环境搭建与性能测试

共2条 1/1 1 跳转至

RK3588开发板--ffmpeg开发系列之一——开发环境搭建与性能测试

高工
2026-02-17 22:25:32     打赏


前言

  我们基于WIN11+WSL2+UBUNTU的方式搭建开发环境,搭建过程可以网上搜索,这里不再赘述。需要安装必要的工具,比如sudo apt-get install gcc-aarch64-linux-gnu等。


PC端git clone https://github.com/FFmpeg/FFmpeg.git/cd FFmpeg/make clean./configure --disable-x86asm --prefix=/home/lhj/opt/ffmpeg/win --enable-sharedmake -j8make install安装位于/home/lhj/opt/ffmpeg/win包括库,头文件lhj@lhj:~/FFmpeg$ ls /home/lhj/opt/ffmpeg/winbin  include  lib  share生成了两个工具位于/home/lhj/opt/ffmpeg/win/bin/下lhj@lhj:~/FFmpeg$ ls /home/lhj/opt/ffmpeg/win/bin/ffmpeg  ffprobe我们看到没有生成ffplay,需要先安装SDL2,再重新构建。sudo apt-get install libsdl2-2.0sudo apt-get install libsdl2-dev此时生成了ffplaylhj@lhj:~/FFmpeg$ ls /home/lhj/opt/ffmpeg/win/bin/ffmpeg  ffplay  ffprobesudo vi /etc/profile 添加路径PATH=$PATH:/home/lhj/opt/ffmpeg/win/binPATH=$PATH:/home/lhj/opt/ffmpeg/win/libsource /etc/profilesudo cp ~/opt/ffmpeg/win/lib/* /usr/lib

就可以使用ffmpeg,ffplay,ffprobe三个工具了。


开发板端由于开发板运行了Ubuntu20系统,且已经联网支持apt-get安装各种包。且开发板性能足够,所以可以直接在开发板上构建。sudo apt-get updatesudo apt-get upgradegit clone https://github.com/FFmpeg/FFmpeg.git/cd FFmpeg/sudo apt-get install libsdl2-2.0sudo apt-get install libsdl2-dev./configure --prefix=/root/opt/ffmpegmake -j4make install生成文件位于root@ok3588:~/FFmpeg# ls /root/opt/ffmpeg/bin  include  lib  sharecp /root/opt/ffmpeg/bin/* /usr/bin/cp /root/opt/ffmpeg/lib/lib* /usr//libcp -rf /root/opt/ffmpeg/include/* /usr/include/性能测试


PC端wget https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_10mb.mp4

ffmpeg -benchmark -i big_buck_bunny_720p_10mb.mp4 -f null -

    lhj@lhj:~$ ffmpeg -benchmark -i big_buck_bunny_720p_10mb.mp4 -f null -

    ffmpeg version N-109734-g806ecace91 Copyright (c) 2000-2023 the FFmpeg developers

      built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)

      configuration: --disable-x86asm

      libavutil      57. 44.100 / 57. 44.100

      libavcodec     59. 60.100 / 59. 60.100

      libavformat    59. 37.100 / 59. 37.100

      libavdevice    59.  8.101 / 59.  8.101

      libavfilter     8. 56.100 /  8. 56.100

      libswscale      6.  8.112 /  6.  8.112

      libswresample   4.  9.100 /  4.  9.100

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'big_buck_bunny_720p_10mb.mp4':

      Metadata:

        major_brand     : isom

        minor_version   : 512

        compatible_brands: isomiso2avc1mp41

        creation_time   : 1970-01-01T00:00:00.000000Z

        encoder         : Lavf53.24.2

      Duration: 00:01:02.31, start: 0.000000, bitrate: 1347 kb/s

      Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 959 kb/s, 25 fps, 25 tbr, 12800 tbn (default)

        Metadata:

          creation_time   : 1970-01-01T00:00:00.000000Z

          handler_name    : VideoHandler

          vendor_id       : [0][0][0][0]

      Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 383 kb/s (default)

        Metadata:

          creation_time   : 1970-01-01T00:00:00.000000Z

          handler_name    : SoundHandler

          vendor_id       : [0][0][0][0]

    Stream mapping:

      Stream #0:0 -> #0:0 (h264 (native) -> wrapped_avframe (native))

      Stream #0:1 -> #0:1 (aac (native) -> pcm_s16le (native))

    Press [q] to stop, [?] for help

    Output #0, null, to 'pipe:':

      Metadata:

        major_brand     : isom

        minor_version   : 512

        compatible_brands: isomiso2avc1mp41

        encoder         : Lavf59.37.100

      Stream #0:0(und): Video: wrapped_avframe, yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 25 tbn (default)

        Metadata:

          creation_time   : 1970-01-01T00:00:00.000000Z

          handler_name    : VideoHandler

          vendor_id       : [0][0][0][0]

          encoder         : Lavc59.60.100 wrapped_avframe

      Stream #0:1(und): Audio: pcm_s16le, 48000 Hz, 5.1, s16, 4608 kb/s (default)

        Metadata:

          creation_time   : 1970-01-01T00:00:00.000000Z

          handler_name    : SoundHandler

          vendor_id       : [0][0][0][0]

          encoder         : Lavc59.60.100 pcm_s16le

    frame= 1557 fps=0.0 q=-0.0 Lsize=N/A time=00:01:02.29 bitrate=N/A speed=64.1x

    video:730kB audio:35052kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

    bench: utime=5.487s stime=0.943s rtime=1.000s

    bench: maxrss=94516kB


开发板端

wget https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_10mb.mp4ffmpeg -benchmark -i big_buck_bunny_720p_10mb.mp4 -f null -


    root@ok3588:~# ffmpeg -benchmark -i big_buck_bunny_720p_10mb.mp4 -f null -

    ffmpeg version N-109968-gcc76e8340d Copyright (c) 2000-2023 the FFmpeg developers

      built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)

      configuration: --prefix=/root/opt/ffmpeg

      libavutil      58.  3.100 / 58.  3.100

      libavcodec     60.  6.100 / 60.  6.100

      libavformat    60.  4.100 / 60.  4.100

      libavdevice    60.  2.100 / 60.  2.100

      libavfilter     9.  4.100 /  9.  4.100

      libswscale      7.  2.100 /  7.  2.100

      libswresample   4. 11.100 /  4. 11.100

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'big_buck_bunny_720p_10mb.mp4':

      Metadata:

        major_brand     : isom

        minor_version   : 512

        compatible_brands: isomiso2avc1mp41

        creation_time   : 1970-01-01T00:00:00.000000Z

        encoder         : Lavf53.24.2

      Duration: 00:01:02.31, start: 0.000000, bitrate: 1347 kb/s

      Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 959 kb/s, 25 fps, 25 tbr, 12800 tbn (default)

        Metadata:

          creation_time   : 1970-01-01T00:00:00.000000Z

          handler_name    : VideoHandler

          vendor_id       : [0][0][0][0]

      Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 383 kb/s (default)

        Metadata:

          creation_time   : 1970-01-01T00:00:00.000000Z

          handler_name    : SoundHandler

          vendor_id       : [0][0][0][0]

    Stream mapping:

      Stream #0:0 -> #0:0 (h264 (native) -> wrapped_avframe (native))

      Stream #0:1 -> #0:1 (aac (native) -> pcm_s16le (native))

    Press [q] to stop, [?] for help

    Output #0, null, to 'pipe:':

      Metadata:

        major_brand     : isom

        minor_version   : 512

        compatible_brands: isomiso2avc1mp41

        encoder         : Lavf60.4.100

      Stream #0:0(und): Video: wrapped_avframe, yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 25 tbn (default)

        Metadata:

          creation_time   : 1970-01-01T00:00:00.000000Z

          handler_name    : VideoHandler

          vendor_id       : [0][0][0][0]

          encoder         : Lavc60.6.100 wrapped_avframe

      Stream #0:1(und): Audio: pcm_s16le, 48000 Hz, 5.1, s16, 4608 kb/s (default)

        Metadata:

          creation_time   : 1970-01-01T00:00:00.000000Z

          handler_name    : SoundHandler

          vendor_id       : [0][0][0][0]

          encoder         : Lavc60.6.100 pcm_s16le

    frame= 1557 fps=749 q=-0.0 Lsize=N/A time=00:01:02.29 bitrate=N/A speed=29.9x   

    video:730kB audio:35052kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

    bench: utime=10.268s stime=0.513s rtime=2.106s

    bench: maxrss=55708kB

    root@ok3588:~#


可以看到基本是PC端一半的速度左右PC端是12th Gen Intel(R) Core(TM) i5-12500H   2.50 GHz处理器.可以看到开发板的性能几乎可以匹敌桌面级CPU了。

Ffprobe使用


    root@ok3588:~# ffprobe big_buck_bunny_720p_10mb.mp4                                                   

    ffprobe version N-109968-gcc76e8340d Copyright (c) 2007-2023 the FFmpeg developers

      built with gcc 9 (Ubuntu 9.3.0-10ubuntu2)

      configuration: --prefix=/root/opt/ffmpeg

      libavutil      58.  3.100 / 58.  3.100

      libavcodec     60.  6.100 / 60.  6.100

      libavformat    60.  4.100 / 60.  4.100

      libavdevice    60.  2.100 / 60.  2.100

      libavfilter     9.  4.100 /  9.  4.100

      libswscale      7.  2.100 /  7.  2.100

      libswresample   4. 11.100 /  4. 11.100

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'big_buck_bunny_720p_10mb.mp4':

      Metadata:

        major_brand     : isom

        minor_version   : 512

        compatible_brands: isomiso2avc1mp41

        creation_time   : 1970-01-01T00:00:00.000000Z

        encoder         : Lavf53.24.2

      Duration: 00:01:02.31, start: 0.000000, bitrate: 1347 kb/s

      Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 959 kb/s, 25 fps, 25 tbr, 12800 tbn (default)

        Metadata:

          creation_time   : 1970-01-01T00:00:00.000000Z

          handler_name    : VideoHandler

          vendor_id       : [0][0][0][0]

      Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 383 kb/s (default)

        Metadata:

          creation_time   : 1970-01-01T00:00:00.000000Z

          handler_name    : SoundHandler

          vendor_id       : [0][0][0][0]

    root@ok3588:~#


ffprobe -show_data big_buck_bunny_720p_10mb.mp4ffprobe -show_packets big_buck_bunny_720p_10mb.mp4ffprobe -show_format big_buck_bunny_720p_10mb.mp4ffprobe -show_frames big_buck_bunny_720p_10mb.mp4

总结

  以上实现了ffmpeg开发环境的搭建,得益于开发板强劲的性能,运行了Ubuntu20系统,且支持apt安装包,所以可以直接在开发板上构建,避免了繁琐的交叉编译,构建速度也和PC上差不太多。和PC端对比性能测试看到基本是PC端性能的一半,可以看到是非常强悍的,基本可以作为开发PC来使用了。





关键词: RK3588     环境     测试    

院士
2026-02-20 16:32:46     打赏
2楼

谢谢分享。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]