• armlinux移植ffmepg


    1综合篇点我
    2uboot移植点我
    3uboot lcd驱动点我
    4kernel移植点我
    5kernel lcd驱动点我
    6摄像头驱动点我
    7ubuntu base移植点我
    8挂载网络文件系统点我
    9qt移植点我
    10搭建qt交叉编译点我
    11wifi移植点我
    12搭建nginx + rtmp服务器点我
    13ffmpeg移植点我

    ffmpeg需要用到H264,所以需要先编译libx264,它是自由的H.264编码库,是x264项目的一部分。

    1 编译H264

    源码下载:http://download.videolan.org/pub/videolan/x264/snapshots/

    1.1 安装依赖

    sudo apt-get install nasm libc6-dev-i386
    
    • 1

    1.2 配置编译

    依次执行下面的命令

    ./configure --host=arm-linux-gnueabihf --cross-prefix=arm-linux-gnueabihf- --prefix=/home/work/third-party/x264-snapshot-20180619-2245-stable/arm-x264 --enable-shared --disable-asm 
    make
    make install
    
    • 1
    • 2
    • 3

    安装完成后arm-x264会存在下面的文件

    在这里插入图片描述

    2 编译ffmpeg

    源码下载:http://ffmpeg.org/releases/

    2.1 配置编译

    依次执行下面的命令

    ./configure --enable-cross-compile --cross-prefix=arm-linux-gnueabihf- --arch=arm --target-os=linux --cc=arm-linux-gnueabihf-gcc --prefix=/home/work/third-party/ffmpeg-3.4.5/arm-ffmpeg --enable-shared --enable-pic --disable-static --enable-gpl --enable-nonfree --enable-pthreads --enable-ffmpeg --disable-ffplay --enable-ffserver --enable-swscale  --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-stripping --enable-libx264 --extra-cflags=-I/home/work/third-party/x264-snapshot-20180619-2245-stable/arm-x264/include --extra-ldflags=-L/home/work/third-party/x264-snapshot-20180619-2245-stable/arm-x264/lib
    make
    make install
    
    • 1
    • 2
    • 3

    安装完成后arm-fmpeg会存在下面的文件

    在这里插入图片描述

    3 移植到网络文件系统中

    3.1 复制到网络文件系统

    将刚才编译好的H264和ffmpeg复制到网络文件系统中

    sudo cp arm-x264/ ../../imx6ull/rootfs/ubuntu-base-armhf/opt/ -r
    sudo cp arm-ffmpeg/ ../../imx6ull/rootfs/ubuntu-base-armhf/opt/ -r
    
    • 1
    • 2

    3.2 添加到开发板环境变量

    启动开发板下可以看到在/opt文件夹下存在arm-ffmpeg和arm-x264

    在这里插入图片描述

    在开发板中执行以下命令

    vim /etc/profile
    
    • 1

    添加下面的内容

    export PATH=$PATH:/opt/arm-nginx/sbin:/opt/arm-ffmpeg/bin
    export LD_LIBRARY_PATH=/opt/arm-ffmpeg/lib:/opt/arm-x264/lib:$LD_LIBRARY_PATH
    
    • 1
    • 2

    et
    重新source

    source /etc/profile
    
    • 1

    4 测试效果

    通过前面移植的nginx+rtmp推流
    在开发板执行下面的命令播放11.mp4视频,在win10 通过vlc拉流

    ffmpeg -re -i 11.mp4 -c copy -f flv rtmp://127.0.0.1:1935/live/on
    
    • 1

    执行结果如下

    在这里插入图片描述

    打开vlc点击媒体选择打开网络串流

    在这里插入图片描述

    因为我开发板的ip是192.168.0.100,所以输入rtmp://192.168.0.100:1935/live/ 拉流

    在这里插入图片描述

    点击播放,结果如下图

    在这里插入图片描述

  • 相关阅读:
    Centos7防火墙相关命令
    一文梳理SpringCloud常见知识点
    【跨境电商】全渠道客户服务终极指南(二):提供全渠道客户服务的 6 种方式
    Matplotlib(五)matplotlib基础用法
    ROS机器人编程---------(二)ROS中的核心概念
    AN基础工具——变形工具
    CSS box-shadow阴影
    信奥中的数学:平面直角坐标系
    浏览器事件循环
    docker-compose + nginx部署前后端分离的项目
  • 原文地址:https://blog.csdn.net/L1643319918/article/details/126695885