美文网首页
如何使用ffmpeg截取直播流到本地

如何使用ffmpeg截取直播流到本地

作者: 简书是什么书 | 来源:发表于2023-08-28 15:20 被阅读0次

    我主要目的是把萤石云的直播流或者回放视频截取到自己的云服务器,或者传到七牛云去存储,因为萤石云的云存储太贵了!

    1. 安装ffmpeg工具

    centos安装ffmpeg,先安装需要用到的东西:

    • 安装openssl

    yum -y install openssl openssl-devel

    • 安装 yasm

    yum -y install yasm

    • 安装 ffmpeg
    # 下载ffmpeg
    wget https://ffmpeg.org/releases/ffmpeg-6.0.tar.xz
    
    # 解压
    tar -xvf ffmpeg-6.0.tar.xz
    
    # cd进入解压后的目录
    cd ffmpeg-6.0
    
    # 开启openssl配置
    ./configure --enable-openssl --prefix=/www/server/ffmpeg
    
    # 编译并安装
    make && make install
    
    # 装好后添加环境变量
    vim /etc/profile
    将以下内容写在profile的最后方:
    export PATH=$PATH:/www/server/ffmpeg/bin
    esc + :wq 保存退出
    source /etc/profile  设置立即生效
    
    # 测试是否成功
    ffmpeg -version
    
    # 视频流保存到本地
    ffmpeg -i 'rtmp://rtmp01open.ys7.com:1935/v3/openpb' -codec copy test.mp4
    

    2. PHP使用ffmpeg

    PHP有个扩展可以很方便的使用ffmpeg,名字就叫 php-ffmpeg,github的地址是 https://github.com/PHP-FFMpeg/PHP-FFMpeg,目前没有看到有中文文档,官方推荐你看源码。

    • 安装php-ffmpeg

    composer require php-ffmpeg/php-ffmpeg

    安装完之后可以用 composer show -i 看看你的php-ffmpeg是什么版本,或者查看 compose.json 文件,或者在安装的时候指定一下版本号。PHP8以下,需要用0.x版本的!

    查看 php-ffmpeg 版本

    我的装完之后,直接使用\FFMpeg\FFMpeg::create()报错了,找不到相关命令(可能没有装在默认目录的原因),所以我手动指定了ffmpeg的命令所在目录。

    <?php
    $ffmpeg = \FFMpeg\FFMpeg::create([
        'ffmpeg.binaries'  => '/www/server/ffmpeg/bin/ffmpeg',
        'ffprobe.binaries' => '/www/server/ffmpeg/bin/ffprobe',
        'timeout'          => 3600, // The timeout for the underlying process
        'ffmpeg.threads'   => 12,   // The number of threads that FFMpeg should use
    ]);
    //打开远程文件流
    $video = $ffmpeg->open('rtmp://rtmp01open.ys7.com:1935/v3/openpb/BA275_1_1?begin=20230822225702&end=20230822225802&expire=1693376103&id=616636943872524288&rec=local&t=9c6f0cd453e448f400d7c3e5f0e86bfbfebfe01f2e4ed5ce8b910ff062becf72&ev=100');
    //保存到本地
    $res = $video->save(new \FFMpeg\Format\Video\X264(), './export.mp4');
    dump($res);
    exit;
    

    另外对源码有些小小的改动,大家根据报错信息去尝试着使用吧!


    视频已经下载下来了

    相关文章

      网友评论

          本文标题:如何使用ffmpeg截取直播流到本地

          本文链接:https://www.haomeiwen.com/subject/pmdwmdtx.html