当前位置: 首页>前端>正文

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 )


文章目录

  • 一、推流和拉流简介
  • 1、直播推流和拉流操作
  • 2、直播推流和拉流涉及到的软件
  • 3、推流 -> 拉流 流程
  • 二、流媒体服务器搭建
  • 1、相关文件准备
  • 2、创建 ECS 云服务器实例
  • 3、配置安全组
  • 4、使用 WinSCP 上传流媒体服务器软件及配置脚本
  • 5、使用 SecureCRT 连接服务器
  • 6、搭建流媒体服务器
  • 三、使用 ffmpeg 命令进行推流操作
  • 四、使用 ffplay 命令进行拉流操作
  • 五、使用 ffmpeg 命令进行拉流操作



【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_流媒体服务器,第1张

博客总结 :

  • ffmpeg 推流命令 :
ffmpeg -re -i input.mp4 -c copy -f flv rtmp://39.105.129.233/myapp/
  • ffplay 拉流命令 :
ffplay rtmp://39.105.129.233/myapp/
  • ffmpeg 拉流命令 :
ffmpeg -i rtmp://39.105.129.233/myapp/ -c copy output.flv


一、推流和拉流简介


1、直播推流和拉流操作


FFmpeg 工具可以用于 直播 的 推流和拉流 操作 ;

  • 推流 是 将本地的音视频流推送到流媒体服务器上 , 如 : 主播将本地电脑上的画面推流到直播平台的流媒体服务器上 ;
  • 拉流 是 拉流是从流媒体服务器上接收音视频流并在本地播放或处理的过程 , 如 : 用户 观看直播平台直播时 , 从流媒体服务器上实时获取直播内容 ;

2、直播推流和拉流涉及到的软件


上述操作涉及到 3 个软件 :

  • 推流端软件
  • 流媒体服务器
  • 拉流端软件

3、推流 -> 拉流 流程


流媒体服务器 在 推流 和 拉流 操作中 , 扮演者重要的角色 , 其主要任务 是 将视频 和 音频等多媒体内容进行 编解码 和 传输 ;

  • 推流 时 , 推流软件 将 音视频 编码 , 传输给 流媒体服务器 ;
  • 流媒体服务器 接收 推流的数据 , 先进行解码 进行各种处理 , 然后再进行编码传输给 拉流端 ;
  • 拉流 时 , 拉流软件 将 从 流媒体服务器 接收的 音视频编码 数据 进行解码 , 然后进行播放 ;

二、流媒体服务器搭建


参考如下博客搭建流媒体服务器 :

  • 【Android RTMP】RTMP 直播推流服务器搭建 ( Ubuntu 18.04.4 虚拟机 )
  • 【Android RTMP】RTMP 直播推流 ( 阿里云服务器购买 | 远程服务器控制 | 搭建 RTMP 服务器 | 服务器配置 | 推流软件配置 | 直播软件配置 | 推流直播效果展示 )
  • 【Android RTMP】RTMP 直播推流阶段总结 ( 服务器端搭建 | Android 手机端编码推流 | 电脑端观看直播 | 服务器状态查看 )
  • 【Android RTMP】安卓直播推流总结 ( 直播服务器搭建 | NV21 图像采集 | H.264 视频编码 | PCM 音频采集 | AAC 音频编码 | RTMP 包封装推流 )

1、相关文件准备

在 Android_RTMP博客资料 -  下载 页面 , 可以下载 Ubuntu 系统 搭建 流媒体服务器 需要的 各种工具和服务器软件 ;

主要是需要前两个软件 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_流媒体服务器_02,第2张

这是需要上传到 Ubuntu 服务器上需要配置的软件 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_FFmpeg_03,第3张


2、创建 ECS 云服务器实例


进入 阿里云服务器 控制台 云服务器 ECS 页面 https://ecs.console.aliyun.com/home , 点击 " 创建实例 " 按钮 ,

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_ffplay_04,第4张

选择 自定义购买 , 抢占式实例 ( 最便宜 ) , 华北 2 ( 北京 ) 区域 , 选择一个默认交换机 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_直播推流_05,第5张

实例 通过 选择 1vCPU 筛选 , 选择第一个实例 , 这个便宜 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_ffplay_06,第6张

选择 Ubuntu 系统 镜像 , 版本号 18.04 64 位 的 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_ffplay_07,第7张

设置 20 G 的云盘 , 能减少费用 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_ffplay_08,第8张

选择自定义密码 , 为 root 用户设置 Han@123456 密码 , 要求必须设置 大小写字母 , 特殊字符 和 数字 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_FFmpeg_09,第9张

设置 今天晚上 自动释放实例 , 写完博客演示完就可以 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_FFmpeg_10,第10张

点击 " 确认下单 " 按钮 , 即可创建实例成功 ; 注意 确保 账户中有 余额 , 否则无法创建该实例 , 冲 10 块钱就行 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_FFmpeg_11,第11张

在 实例与镜像 中 , 可以查看刚才创建的实例 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_直播拉流_12,第12张


3、配置安全组


选择 " 网络与安全 " 下面的 安全组 选项 , 点击 管理规则 链接 ,

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_流媒体服务器_13,第13张

在 " 入方向 " 配置 TCP 协议的 8080 和 1935 端口 , 这是为 流媒体服务器 设置的端口 ;
( 也可以设置别的端口 , 不过流媒体配置脚本也需要对应修改 )

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_流媒体服务器_14,第14张

点击 实例 最右侧的

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_ffplay_15,第15张

按钮 , 选择 网络和安全组 下的 修改安全组 选项 ,

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_流媒体服务器_16,第16张

在 弹出的对话框中 , 可以选择刚才设置了 入方向配置 TCP 协议 8080 和 1935 端口 的 安全组 ;

设置了该安全组 , 才能在 流媒体服务器 中使用这两个端口 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_流媒体服务器_17,第17张


4、使用 WinSCP 上传流媒体服务器软件及配置脚本


WinSCP 工具在 Android_RTMP博客资料\002_远程Linux控制工具\linux_tools\winscp514 目录下 ;
( 这是 在 Android_RTMP博客资料 -  下载 页面 中下载的博客资料 )

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_直播推流_18,第18张

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_ffplay_19,第19张

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_直播推流_20,第20张

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_ffplay_21,第21张

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_ffplay_22,第22张

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_直播推流_23,第23张

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_流媒体服务器_24,第24张


5、使用 SecureCRT 连接服务器


实例 的 公网 IP 是 39.105.129.233 ,

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_ffplay_25,第25张

连接 39.105.129.233 地址 , 使用 root 用户名 ,

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_FFmpeg_26,第26张

选择 接收并保存 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_直播拉流_27,第27张

输入密码 Han@123456 , 并保存密码 ;

点击 " 确定 " 按钮 , 开始连接 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_直播拉流_28,第28张

连接后 , 可以查看 root 用户目录下的文件 , 包括之前上传的一系列的 流媒体服务器 软件相关的文件 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_直播推流_29,第29张


6、搭建流媒体服务器


直接执行 rtmp_server_build.sh 脚本文件 , 即可完成服务器搭建 ;

执行

chmod 777 rtmp_server_build.sh

命令 , 为 rtmp_server_build.sh 脚本文件赋予执行权限 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_流媒体服务器_30,第30张

执行

./rtmp_server_build.sh

命令 , 开始进行流媒体服务器配置 ; 期间会提示几次 输入 Y 按回车 ;

显示如下内容 , 说明执行完毕 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_直播拉流_31,第31张

当前 云服务器 ECS 公网 IP 是 39.105.129.233 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_直播推流_32,第32张

则 流媒体 服务器的 HTTP 状态查看地址是 http://39.105.129.233:8080/stat , 在浏览器访问该地址 , 可以查看 流媒体 服务器状态 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_直播拉流_33,第33张

在 http://39.105.129.233:8080/ 地址可以查看直播内容 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_直播推流_34,第34张


三、使用 ffmpeg 命令进行推流操作


执行

ffmpeg -re -i input.mp4 -c copy -f flv rtmp://39.105.129.233/myapp/

命令 , 将本地的 input.mp4 推流到流媒体服务器中 , 开始推流 ;

  • -re 参数 设置 以实时的速度 读取 输入文件 , 如 : 输入视频的长度是 3 分钟 , 那么 使用 3 分钟的时间来处理这个视频 , 不能用最快速度处理完 , 该设置确保了推流的速度与视频播放的速度相匹配 ;
  • -i input.mp4 参数 设置 输入文件名称是 input.mp4 , 此处也可以是 实时的录屏 ;
  • rtmp://39.105.129.233/myapp/ 参数 , rtmp 是 流媒体协议 , 39.105.129.233 是流媒体服务器 , myapp 是在 流媒体服务器 的 nginx.conf 中配置的 rtmp / server / application 配置中配置的应用名称 ;
rtmp {
    server {
        listen 1935;

        application myapp {
            live on;
        }
    }
}

直播的地址不只是 rtmp://39.105.129.233/myapp/ 地址 , 后面可以追加内容 , 如

rtmp://39.105.129.233/myapp/0
rtmp://39.105.129.233/myapp/9527
rtmp://39.105.129.233/myapp/888

这些地址也是可以使用的 , 随后拉流的时候也使用相同的地址进行拉流 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_ffplay_35,第35张

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_FFmpeg_36,第36张


四、使用 ffplay 命令进行拉流操作


在另一个窗口 , 执行

ffplay rtmp://39.105.129.233/myapp/

命令 , 开始拉流 播放 ; 效果如下 :

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_流媒体服务器,第1张

推流完毕后 , 推流的命令行直接退出 , 拉流的命令行需要手动退出 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_ffplay_38,第38张

此时 在 服务器状态上 仍然显示有直播流 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_流媒体服务器_39,第39张

将 拉流 的 命令行 使用 Ctrl + C 强制退出 ,

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_流媒体服务器_40,第40张

此时服务器的流状态显示未 0 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_ffplay_41,第41张


五、使用 ffmpeg 命令进行拉流操作


在另一个窗口 , 执行

ffmpeg -i rtmp://39.105.129.233/myapp/ -c copy output.flv

命令 , 开始拉流 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_ffplay_42,第42张

执行过程如下 , 期间不会播放直播画面 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_ffplay_43,第43张

在 拉流 命令行界面 , 使用 Ctrl + C 退出 , 拉流完成后 , 会自动将推流内容保存到 output.flv 文件中 ;

【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpegffplay 命令进行拉流操作 ),【FFmpeg】使用 ffmpeg 命令实现直播推拉流 ( 推流和拉流简介 | 流媒体服务器搭建 | 使用 ffmpeg 命令进行推流操作 | 使用 ffmpeg/ffplay 命令进行拉流操作 )_直播推流_44,第44张



https://www.xamrdz.com/web/2ah1960099.html

相关文章: