zoukankan      html  css  js  c++  java
  • 使用FFMPEG在windows平台下推rtmp流

    使用FFMPEG在windows平台下推rtmp流

    工作中习惯在Linux下面使用FFmpeg模拟推rtmp流,无奈家中的电脑都是windows系统,需要利用家中的带宽来测试流媒体服务器的性能。所以研究了一下如何在windows系统中快速推流。

    首先下载安装ffmpeg

    下载windows下的FFMPEG压缩包,解压到当前目录,见下图(如何快速截图并上传到图传?

    我们使用的是ffmpeg-20180429-19c3df0-win64-staticin路径下的ffmpeg.exe文件。

    写两个脚本实现推流

    可以使用windows批处理或者powershell脚本,但都得实现两份,所以最好能够重用Linux下的shell脚本。

    安装Cygwin

    下载安装Cygwin。

    两个Cygwin命令

    • 跳转到其他盘符

      $ cd /cygdrive/f

    • 设置环境变量,将ffmpeg的bin目录加到环境变量中

      $ export PATH=$PATH:/cygdrive/f/Harlan/Software/ffmpeg-20180429-19c3df0-win64-st atic/bin/

    循环推流shell脚本

    创建一个shell脚本文件pushstream.sh,内容如下

    #!/bin/bash
    
    for((;;)); do 
    ffmpeg -re  -i "..videos	est-$1.mp4"  -c copy  -f flv "rtmp://stream_media_server_address:1935/live/test-$1/test-$1"
    sleep 1; 
    done
    

    注意添加了一个参数$1。

    推多路流的shell脚本

    将推流的进程启动为守护进程,创建一个脚本push_all.sh:

    #!/bin/bash
    
    setsid ./pushstream.sh 20 >/dev/null 2>&1 < /dev/null &
    setsid ./pushstream.sh 30 >/dev/null 2>&1 < /dev/null &
    setsid ./pushstream.sh 40 >/dev/null 2>&1 < /dev/null &
    setsid ./pushstream.sh 60 >/dev/null 2>&1 < /dev/null &
    

    执行下面的命令启动脚本:

    $ ./push_all.sh
    

    可以看到有四路流在后台同时在推:

  • 相关阅读:
    session的使用
    不可变对象的魅力
    协变和逆变
    LaTeX 学习小结
    KMP 算法的两种实现
    MySQL MVCC
    Java 并发之 Executor 框架
    Java 动态代理的简单使用和理解
    Java 偏向锁、轻量级锁和重量级锁
    事件循环和协程
  • 原文地址:https://www.cnblogs.com/harlanc/p/8973525.html
Copyright © 2011-2022 走看看