码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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/ 拉流

    在这里插入图片描述

    点击播放,结果如下图

    在这里插入图片描述

  • 相关阅读:
    【Java集合】ArrayDeque源码解读
    修改Ehcache缓存中取到的值,缓存中的值也被修改了
    js---类
    [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
    【Python学习】Day-025 爬虫、requests基本用法
    docker学习
    Vue中的监视属性
    微信支付项目实战、创建订单到支付退款代码详解
    Java基础(第五期): 一维数组 && 二维数组 && 数组 && 引用数据类型在内存中的存储图解
    Win7使用默认用户登录
  • 原文地址:https://blog.csdn.net/L1643319918/article/details/126695885
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号