ARM+FPGA开发板基于FFMPEG的网络视频播放终端——米尔NXP I.MX 8M

发布时间:2023-04-13  

ARM+FPGA开发板基于FFMPEG的网络视频播放终端——米尔NXP I.MX 8M MINI+ARTIX-7处理器开发板


本篇测评由优秀测评者“qinyunti”提供。


01.前言  


米尔这款ARM+fpga开发板具备高性能的ARM MPU+多媒体能力,采用i.MX 8M Mini+Artix-7处理器,特别适合多媒体终端开发。本篇就体验搭建ffmpeg开发环境,并进行性能测试,进行视频播放,演示网络视频播放器等。

 

02.编译过程


交叉编译

./configure --cross-prefix=aarch64-linux-gnu- --enable-cross-compile --target-os=linux --cc=aarch64-linux-gnu-gcc --arch=arm64 --prefix=/home/lhj/opt/ffmpeg/board --enable-ffmpeg --disable-armv5te --disable-armv6 --disable-armv6t2

WARNING: aarch64-linux-gnu-pkg-config not found, library detection may fail.

make

make install

生成文件如下

lhj@lhj:~/FFmpeg$ tree /home/lhj/opt/ffmpeg/board/

/home/lhj/opt/ffmpeg/board/

|-- bin

|   |-- ffmpeg

|   `-- ffprobe

|-- include

|   |-- libavcodec

|   |   |-- ac3_parser.h

|   |   |-- adts_parser.h

|   |   |-- avcodec.h

|   |   |-- avdct.h

|   |   |-- avfft.h

|   |   |-- bsf.h

|   |   |-- codec.h

|   |   |-- codec_desc.h

|   |   |-- codec_id.h

|   |   |-- codec_par.h

|   |   |-- d3d11va.h

|   |   |-- defs.h

|   |   |-- dirac.h

|   |   |-- dv_profile.h

|   |   |-- dxva2.h

|   |   |-- jni.h

|   |   |-- mediacodec.h

|   |   |-- packet.h

|   |   |-- qsv.h

|   |   |-- vdpau.h

|   |   |-- version.h

|   |   |-- version_major.h

|   |   |-- videotoolbox.h

|   |   |-- vorbis_parser.h

|   |   `-- xvmc.h

|   |-- libavdevice

|   |   |-- avdevice.h

|   |   |-- version.h

|   |   `-- version_major.h

|   |-- libavfilter

|   |   |-- avfilter.h

|   |   |-- buffersink.h

|   |   |-- buffersrc.h

|   |   |-- version.h

|   |   `-- version_major.h

|   |-- libavformat

|   |   |-- avformat.h

|   |   |-- avio.h

|   |   |-- version.h

|   |   `-- version_major.h

|   |-- libavutil

|   |   |-- adler32.h

|   |   |-- aes.h

|   |   |-- aes_ctr.h

|   |   |-- ambient_viewing_environment.h

|   |   |-- attributes.h

|   |   |-- audio_fifo.h

|   |   |-- avassert.h

|   |   |-- avconfig.h

|   |   |-- avstring.h

|   |   |-- avutil.h

|   |   |-- base64.h

|   |   |-- blowfish.h

|   |   |-- bprint.h

|   |   |-- bswap.h

|   |   |-- buffer.h

|   |   |-- camellia.h

|   |   |-- cast5.h

|   |   |-- channel_layout.h

|   |   |-- common.h

|   |   |-- cpu.h

|   |   |-- crc.h

|   |   |-- csp.h

|   |   |-- des.h

|   |   |-- detection_bbox.h

|   |   |-- dict.h

|   |   |-- display.h

|   |   |-- dovi_meta.h

|   |   |-- downmix_info.h

|   |   |-- encryption_info.h

|   |   |-- error.h

|   |   |-- eval.h

|   |   |-- ffversion.h

|   |   |-- fifo.h

|   |   |-- file.h

|   |   |-- film_grain_params.h

|   |   |-- frame.h

|   |   |-- hash.h

|   |   |-- hdr_dynamic_metadata.h

|   |   |-- hdr_dynamic_vivid_metadata.h

|   |   |-- hmac.h

|   |   |-- hwcontext.h

|   |   |-- hwcontext_cuda.h

|   |   |-- hwcontext_d3d11va.h

|   |   |-- hwcontext_drm.h

|   |   |-- hwcontext_dxva2.h

|   |   |-- hwcontext_mediacodec.h

|   |   |-- hwcontext_opencl.h

|   |   |-- hwcontext_qsv.h

|   |   |-- hwcontext_vaapi.h

|   |   |-- hwcontext_vdpau.h

|   |   |-- hwcontext_videotoolbox.h

|   |   |-- hwcontext_vulkan.h

|   |   |-- imgutils.h

|   |   |-- intfloat.h

|   |   |-- intreadwrite.h

|   |   |-- lfg.h

|   |   |-- log.h

|   |   |-- lzo.h

|   |   |-- macros.h

|   |   |-- mastering_display_metadata.h

|   |   |-- mathematics.h

|   |   |-- md5.h

|   |   |-- mem.h

|   |   |-- motion_vector.h

|   |   |-- murmur3.h

|   |   |-- opt.h

|   |   |-- parseutils.h

|   |   |-- pixdesc.h

|   |   |-- pixelutils.h

|   |   |-- pixfmt.h

|   |   |-- random_seed.h

|   |   |-- rational.h

|   |   |-- rc4.h

|   |   |-- replaygain.h

|   |   |-- ripemd.h

|   |   |-- samplefmt.h

|   |   |-- sha.h

|   |   |-- sha512.h

|   |   |-- spherical.h

|   |   |-- stereo3d.h

|   |   |-- tea.h

|   |   |-- threadmessage.h

|   |   |-- time.h

|   |   |-- timecode.h

|   |   |-- timestamp.h

|   |   |-- tree.h

|   |   |-- twofish.h

|   |   |-- tx.h

|   |   |-- uuid.h

|   |   |-- version.h

|   |   |-- video_enc_params.h

|   |   `-- xtea.h

|   |-- libswresample

|   |   |-- swresample.h

|   |   |-- version.h

|   |   `-- version_major.h

|   `-- libswscale

|       |-- swscale.h

|       |-- version.h

|       `-- version_major.h

|-- lib

|   |-- libavcodec.a

|   |-- libavdevice.a

|   |-- libavfilter.a

|   |-- libavformat.a

|   |-- libavutil.a

|   |-- libswresample.a

|   |-- libswscale.a

|   `-- pkgconfig

|       |-- libavcodec.pc

|       |-- libavdevice.pc

|       |-- libavfilter.pc

|       |-- libavformat.pc

|       |-- libavutil.pc

|       |-- libswresample.pc

|       `-- libswscale.pc

`-- share

    |-- doc

    |   `-- ffmpeg

    |       |-- bootstrap.min.css

    |       |-- default.css

    |       |-- developer.html

    |       |-- faq.html

    |       |-- fate.html

    |       |-- ffmpeg-all.html

    |       |-- ffmpeg-bitstream-filters.html

    |       |-- ffmpeg-codecs.html

    |       |-- ffmpeg-devices.html

    |       |-- ffmpeg-filters.html

    |       |-- ffmpeg-formats.html

    |       |-- ffmpeg-protocols.html

    |       |-- ffmpeg-resampler.html

    |       |-- ffmpeg-scaler.html

    |       |-- ffmpeg-utils.html

    |       |-- ffmpeg.html

    |       |-- ffprobe-all.html

    |       |-- ffprobe.html

    |       |-- general.html

    |       |-- git-howto.html

    |       |-- libavcodec.html

    |       |-- libavdevice.html

    |       |-- libavfilter.html

    |       |-- libavformat.html

    |       |-- libavutil.html

    |       |-- libswresample.html

    |       |-- libswscale.html

    |       |-- mailing-list-faq.html

    |       |-- nut.html

    |       |-- platform.html

    |       `-- style.min.css

    |-- ffmpeg

    |   |-- examples

    |   |   |-- Makefile

    |   |   |-- README

    |   |   |-- avio_list_dir.c

    |   |   |-- avio_reading.c

    |   |   |-- decode_audio.c

    |   |   |-- decode_video.c

    |   |   |-- demuxing_decoding.c

    |   |   |-- encode_audio.c

    |   |   |-- encode_video.c

    |   |   |-- extract_mvs.c

    |   |   |-- filter_audio.c

    |   |   |-- filtering_audio.c

    |   |   |-- filtering_video.c

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    预期今后新的需求如果是和视频处理有关的,基本上都可以交给FFmpeg来实现 缺点: - 修改原框架,实现新框架,涉及的工作量比较大 综合以上分析,决定采用方案3 2.2 开发计划 1) FFmpegFreeType的移植 2......
    FFmpeg (二)——视屏流播放简单实现      帧显示的流程,大致如下:       2.2 显示模式切换 实现思路:利用av_filter的scalepad功能,对获......
    户人家都有了。 对于接入亚马逊ALEXA的产品种类也是越来越丰富,今天我们来讲讲关于音视频产品接入亚马逊ALEXA。 首先音视频接入亚马逊ALEXA有两种途径及WEBRTC接入的优势: 1. 通过......
    .264/263 BPVC1(WMV9)多种视频硬件编解码,可用于手机、平板电脑和游戏机等手持移动设备和其他高性能嵌入式设备。国产手机魅族M8的处理器使用的就是S3C6410。 虽然FFmpeg......
    在mini2440上移植使用FFmpeg录像;最近想在板子上插个摄像头,录个像,搞了两三天,算是能用人家的ffmpeg程序在自己的板子上摄像,然后将文件.avi格式保存到PC机上了。过程......
    、微信小程序以及移动APP等,需选取一个更加通用的协议作为传输标准,所以选择了更为通用的Webrtc格式流。原始的视频流各位RTSP标准,要转换成Webrtc格式,需要经过两次转换来完成。在视......
    基于S3C2440在Linux上实现视频监控系统的FFmpeg编解码设计;引言 随着视频编解码技术、计算机网络技术、数字信号处理技术和嵌入式系统的发展,以嵌......
    ARM+FPGA开发板基于FFMPEG的网络视频播放终端——米尔NXP I.MX 8M;ARM+FPGA开发板基于FFMPEG的网络视频播放终端——米尔NXP I.MX 8M MINI+ARTIX......
    FFmpeg移植S3C2440;FFmpeg移植过程: FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证。它的移植同样遵循LGPL或GPL移植......
    FFmpeg移植到mini2440;Fedora 8arm-linux-gcc 3.4.1 下载ffmpeg_x264_src_20071007源码 免费下载地址在 http......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>