0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

发烧友实测 | 用飞凌OKA40i-C开发板玩转FFmpeg

飞凌嵌入式 2022-12-16 15:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本篇试用报告由发烧友zealsoft提供,感谢zealsoft的支持。飞凌嵌入式会在电子发烧友和电路城论坛持续开展开发板有奖试用活动,更有京东E卡等着你!欢迎大家的持续关注。

1. FFmpeg的安装

FFmpeg是用来记录、转换数字音频、视频的开源软件,它支持文件和网络流操作。它支持以函数库的方式使用,所以有很多软件都依赖它,比如VLC、暴风影音、腾讯会议等。它的命令行程序也非常强大,各种命令行选项学起来虽然困难,但是几乎能够满足日常对音视频的各种处理需求。今天我们就通过飞凌嵌入式OKA40i-C开发板来介绍它的命令行工作方式。

FFmpeg提供了全部源代码,所以在网上可以找到很多教程是关于交叉编译ARM版本的。我们测试的版本使用的是FFmpeg-release-armel-static.tar.xz。解压缩以后拷贝到飞凌嵌入式OKA40i-C开发板上并设置好权限就可以使用了。

2. USB摄像头测试

OKA40i-C开发板接口丰富,它支持USB摄像头、CMOS-OV5640摄像头、模拟摄像头。把USB摄像头插入开发板,然后使用

v4l2-ctl --list-devices

可以看到/dev/video0就是我们的USB摄像头,如下图。

4463586e-7ce4-11ed-b116-dac502259ad0.png

使用下面的命令可以看到该摄像头的全部参数:

v4l2-ctl -d /dev/video0 --all

Driver Info (not using libv4l2): Driver name : uvcvideo Card type : USB2.0 PC CAMERA Bus info : usb-sunxi-ehci-1 Driver version : 3.10.65 Capabilities : 0x04000001 Video Capture Streaming Video input : 0 (Camera 1: ok) Format Video Capture: Width/Height : 640/480 Pixel Format : 'YUYV' Field : None Bytes per Line : 1280 Size Image : 614400 Colorspace : Default Transfer Function : Default YCbCr Encoding : Default Quantization : Default Crop Capability Video Capture: Bounds : Left 0, Top 0, Width 640, Height 480 Default : Left 0, Top 0, Width 640, Height 480 Pixel Aspect: 1/1 Streaming Parameters VideoCapture: Capabilities : timeperframe Frames per second: 30.000 (30/1) Read buffers : 0 brightness (int) : min=0 max=255 step=1 default=128value=128 contrast (int) : min=0 max=255 step=1 default=135value=135 saturation (int) : min=0 max=255 step=1 default=75 value=75 hue (int) : min=-127 max=127 step=1 default=0 value=0 gamma (int) : min=1 max=8 step=1 default=4 value=4 power_line_frequency (menu) : min=0 max=2 default=1 value=1 sharpness (int) : min=0 max=15 step=1 default=5 value=5 backlight_compensation (int) : min=1 max=5 step=1 default=1 value=1

我们使用了两种型号的USB摄像头,按照手册说明使用内置的uvccamera程序进行测试,不过都没有成功,得到的错误信息如下图所示。

447bdc04-7ce4-11ed-b116-dac502259ad0.png44954748-7ce4-11ed-b116-dac502259ad0.png

我们使用FFmpeg可以抓取视频,命令行如下:

ffmpeg-fvideo4linux2-s640x480-pix_fmtyuyv422-i/dev/video0out.yuv

使用Windows版本的ffplay可以正常播放抓取的视频,命令行如下:

ffplay-s640x480-pix_fmtyuyv422out.yuv

上面保存的是YUV格式的原始视频,如果要保存压缩视频,可以用下面的命令行:

ffmpeg-y-t15-r25-fvideo4linux2 -i/dev/video0out3.mp4-timestampsbs

其中的-r 25表示每秒采样25帧,这个参数必须有,否则FFmpeg可能会不断地采集并压缩同一视频帧。-r参数超过30没有什么意义,因为USB摄像头的最大能力就是30fps。

飞凌嵌入式OKA40i-C开发板可以对于1080P的视频压缩达到45fps,所以对USB摄像头的视频压缩应该没有什么压力。

3. FFmpeg性能测试

FFmpeg有个benchmark参数可以方便进行性能测试。我们对A40i开发板自带的一个MP4视频就行解码测试,命令行如下:

ffmpeg-benchmark-itranslate.mp4-fnull–

得到的测试数据如下:

video: 148kB audio: 3428kB subtitle:0kB other streams:0kB globalheaders:0kB muxing overhead: unknown bench: utime=2.820s stime=0.110s rtime=0.956s bench: maxrss=14208kB

由于我手上暂时没有其他的开发板可以对比,于是就通过我用了5年的i7-6500笔记本测试了一下,测试结果如下:

video: 241kB audio: 3428kB subtitle:0kB other streams:0kB globalheaders:0kB muxing overhead: unknown bench: utime=0.391s stime=0.000s rtime=0.228s bench: maxrss=20316kB

4. FFmpeg产生实时视频流

FFmpeg可以支持实时视频流的发送和接收,从而可以把OKA40i-C开发板上的视频实时发送到PC上,由PC上的软件实时接收并显示。我们可以使用下面的命令将OKA40i-C开发板上的一个MP4转换为RTP码流发送的PC上:

ffmpeg -re-itest.mp4-an-ccopy-frtprtp://192.168.0.105:1234

使用Wireshark可以看到在PC机的1234端口收到大量来自OKA40i-C开发板的H.264视频流。

44b0c25c-7ce4-11ed-b116-dac502259ad0.png

如果想在PC上显示视频流,需要建立一个SDP文件,它描述视频流中的端口和编码信息。

SDP是来自SIP标准中定义,目前VLC、Apple QuickTime和ffplay等很多软件都可以打开SDP文件,并按照SDP中的描述显示视频流。SDP文件并不需要手工编写,在ffmpeg运行时它会显示命令行所对应的SDP定义,如下图所示。

44eb558e-7ce4-11ed-b116-dac502259ad0.png

也可以用重定向将输出写入一个SDP文件,如:

ffmpeg-re-itest.mp4-an-ccopy-frtprtp://192.168.0.105:1234>rtp.sdp

下面就是使用VLC显示的接收到的视频流。

450a6f96-7ce4-11ed-b116-dac502259ad0.png


5. FFmpeg转发USB摄像头的视频流

前面演示了将MP4文件转换为视频流,我们也可以将USB摄像头采集的内容实时转发到PC上,使用下面的命令行即可。

ffmpeg -y -t 15 -r 25 -f video4linux2 -i /dev/video0 -f rtp rtp://192.168.0.105:1234 > usb.sdp

再使用下面的命令行就可以看到实时抓取的USB摄像头的视频流了:

ffplay -protocol_whitelist "file,udp,rtp" -i usb.sdp

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5209

    文章

    20655

    浏览量

    336961
  • 开发板
    +关注

    关注

    26

    文章

    6419

    浏览量

    120798
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式RV1126B开发板试用体验】初识嵌入式RV1126B开发板

    这几天刚收到嵌入式RV1126B开发板,带大家先认识一下这块开发板,收到的开发板如下图。 开发板
    发表于 04-13 17:27

    嵌入式RV1126B开发板】+两款开发板之比较

    个接口并列的方式,而开发板则是采用叠层的方式,且有一组是使用Type C的接口方式。 此外为了便于程序调试,两者均配置了Type C方式
    发表于 03-05 23:32

    【获奖名单】2025开发板评测大赛优秀开发者、最受欢迎开发板公布

    各位发烧友们,大家好!2025开发板试用评测大赛已圆满落幕。经过厂商与发烧友平台的共同评选,优秀作品及人选名单现已评选完成,共选出24位优秀作品开发者,被评选上的用户将获得荣誉证书。各
    发表于 11-21 09:31

    电子发烧友积分如何兑换奖励?

    电子发烧友积分如何兑换奖励?
    发表于 11-19 09:34

    OK-MX9596-C开发板试用】②体验WIFI、蓝牙、音频、视频,为AI应用打下基础

    OK-MX9596-C开发板试用】①开箱图赏、跑分测试、yolo大模型三箭齐发 -
    发表于 10-21 18:17

    [投票评选]2025电子发烧友开发板测评大赛--最受欢迎开发板

    2025电子发烧友开发板测评大赛--最受欢迎开发板 大赛详情: 电子发烧友携手 16 家生态厂商发起开发板测评大赛,设 OpenHarmon
    发表于 10-13 16:25

    【作品合集】嵌入式OK527N-C开发板测评

    嵌入式OK527N-C开发板测评作品合集 产品介绍: OK527-C开发板采用核心
    发表于 09-22 15:54

    【作品精选】2025电子发烧友开发板测评大赛作品合集!

    大赛详情: 电子发烧友携手 16 家生态厂商发起开发板测评大赛,设 OpenHarmony、RISC - V、Rockchip 三大赛道,共计 21 款、160 + 块开发板,通过评测开发板
    发表于 09-03 15:24

    送啦!嵌入式联合NXP邀您参加OK-MX9596-C开发板试用活动

    送啦!嵌入式联合NXP邀您参加OK-MX9596-C开发板试用活动
    的头像 发表于 08-22 08:03 1145次阅读
    送啦!<b class='flag-5'>飞</b><b class='flag-5'>凌</b>嵌入式联合NXP邀您参加OK-MX9596-<b class='flag-5'>C</b><b class='flag-5'>开发板</b>试用活动

    RK3568开发板暗藏32位兼容开关?嵌入式带你一键解锁!

    RK3568是一款64位处理器,嵌入式为其提供的交叉编译器也是64位的,然而部分用户可能需要在RK3568开发板上运行32位应用。本文将详细阐述如何使用32位交叉编译器,编译出32位应用,并使其能够在
    的头像 发表于 07-19 08:49 4557次阅读
    RK3568<b class='flag-5'>开发板</b>暗藏32位兼容开关?<b class='flag-5'>飞</b><b class='flag-5'>凌</b>嵌入式带你一键解锁!

    T527N开发板试用】开箱与开发板介绍视频

    嵌入式OK527N-C开发板开箱介绍】 https://www.bilibili.com/video/BV1sfKSzmEtU/?share_source=copy_web&
    发表于 06-26 09:43

    5分钟学会网络服务搭建!i.MX9352开发板 + Linux 6.1实战示例

    本文就将以嵌入式OK-MX9352-C开发板(搭载了在工业物联网领域广泛应用的NXP i.MX9352处理器)为平台,介绍如何在Linu
    的头像 发表于 06-13 16:42 1522次阅读
    5分钟学会网络服务搭建!<b class='flag-5'>飞</b><b class='flag-5'>凌</b><b class='flag-5'>i</b>.MX9352<b class='flag-5'>开发板</b> + Linux 6.1实战示例

    新进发烧友

    今天注册成为了电子发烧友,多学习,多交流,多进步
    发表于 06-10 10:59

    一个不错的活动:电子发烧友开发板评测大赛

    “  凑齐了 OpenHarmony,Risc-V,Rocketchip 三大赛道 21 款来自不同厂家的开发板,可免费申请试用。 ”   电子发烧友开发板评测大赛正式启动!无论你是开源生态的探索者
    的头像 发表于 05-21 11:19 892次阅读
    一个不错的活动:电子<b class='flag-5'>发烧友</b><b class='flag-5'>开发板</b>评测大赛

    2025电子发烧友开发板评测大赛开启!三大赛道火力全开,顶级开发板等你来战!

    技术人的狂欢,开发者的盛宴! 2025年最值得期待的硬核赛事——电子发烧友开发板评测大赛正式启动!无论你是开源生态的探索者、芯片架构的极客,还是物联网领域的创新达人,本次大赛三大赛
    发表于 05-15 15:09