5分钟教你利用服务器,打造1个 7*24H直播的直播间

2023-12-08 04:45

本文主要是介绍5分钟教你利用服务器,打造1个 7*24H直播的直播间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在折腾无人直播。觉得还挺有意思,接下来就分享一下如何实现。实现后就可以给一些主流的平台直播间不间断推流,达到无人直播的效果。
前提:拥有一台服务器。最好流量是1T或者以上。直播对流量要求比较高,视频码率越大,越费流量,所以最好买个国外的服务器。流量相对便宜。
接下来开始整,以centos作为演示搭建平台:

  1. 先vim创建文件,然后复制lala大佬的写的比较傻瓜式的操作的脚本,给放到服务器上,脚本内容如下:我这里创建的文件名字是test.sh。( 就是vim test.sh 。然后输入i进入编辑模式,然后复制粘贴以下内容,然后:wq 保存退出即可应该都会用vim吧,不会的可以留言~ )
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#=================================================================#
#   System Required: CentOS7 X86_64                               #
#   Description: FFmpeg Stream Media Server                       #
#   Author: LALA                                    #
#   Website: https://www.lala.im                                  #
#=================================================================## 颜色选择
red='\033[0;31m'
green='\033[0;32m'
yellow='\033[0;33m'
font="\033[0m"ffmpeg_install(){
# 安装FFMPEG
read -p "你的机器内是否已经安装过FFmpeg4.x?安装FFmpeg才能正常推流,是否现在安装FFmpeg?(yes/no):" Choose
if [ $Choose = "yes" ];thenyum -y install wgetwget --no-check-certificate https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.0.3-64bit-static.tar.xztar -xJf ffmpeg-4.0.3-64bit-static.tar.xzcd ffmpeg-4.0.3-64bit-staticmv ffmpeg /usr/bin && mv ffprobe /usr/bin && mv qt-faststart /usr/bin && mv ffmpeg-10bit /usr/bin
fi
if [ $Choose = "no" ]
thenecho -e "${yellow} 你选择不安装FFmpeg,请确定你的机器内已经自行安装过FFmpeg,否则程序无法正常工作! ${font}"sleep 2
fi}stream_start(){
# 定义推流地址和推流码
read -p "输入你的推流地址和推流码(rtmp协议):" rtmp# 判断用户输入的地址是否合法
if [[ $rtmp =~ "rtmp://" ]];thenecho -e "${green} 推流地址输入正确,程序将进行下一步操作. ${font}"sleep 2elseecho -e "${red} 你输入的地址不合法,请重新运行程序并输入! ${font}"exit 1
fi# 定义视频存放目录
read -p "输入你的视频存放目录 (格式仅支持mp4,并且要绝对路径,例如/opt/video):" folder# 判断是否需要添加水印
read -p "是否需要为视频添加水印?水印位置默认在右上方,需要较好CPU支持(yes/no):" watermark
if [ $watermark = "yes" ];thenread -p "输入你的水印图片存放绝对路径,例如/opt/image/watermark.jpg (格式支持jpg/png/bmp):" imageecho -e "${yellow} 添加水印完成,程序将开始推流. ${font}"# 循环while truedocd $folderfor video in $(ls *.mp4)doffmpeg -re -i "$video" -i "$image" -filter_complex overlay=W-w-5:5 -c:v libx264 -c:a aac -b:a 192k -strict -2 -f flv ${rtmp}donedone
fi
if [ $watermark = "no" ]
thenecho -e "${yellow} 你选择不添加水印,程序将开始推流. ${font}"# 循环while truedocd $folderfor video in $(ls *.mp4)doffmpeg -re -i "$video" -preset ultrafast -c:v copy -c:a aac -b:a 192k -strict -2 -f flv ${rtmp}# ffmpeg -re -i "$video" -preset ultrafast -vcodec libx264 -g 60 -b:v 8500k -c:a aac -b:a 128k -strict -2 -f flv ${rtmp}donedone
fi}# 停止推流
stream_stop(){screen -S stream -X quitkillall ffmpeg}# 开始菜单设置
echo -e "${yellow} CentOS7 X86_64 FFmpeg无人值守循环推流 For LALA.IM ${font}"
echo -e "${red} 请确定此脚本目前是在screen窗口内运行的! ${font}"
echo -e "${green} 1.安装FFmpeg (机器要安装FFmpeg才能正常推流) ${font}"
echo -e "${green} 2.开始无人值守循环推流 ${font}"
echo -e "${green} 3.停止推流 ${font}"
start_menu(){read -p "请输入数字(1-3),选择你要进行的操作:" numcase "$num" in1)ffmpeg_install;;2)stream_start;;3)stream_stop;;*)echo -e "${red} 请输入正确的数字 (1-3) ${font}";;esac}# 运行开始菜单
start_menu
  1. 第一步如果折腾好的话是这样的

然后执行bash test.sh。显示这样

  1. 选择1,回车,yes,先安装FFmpeg。
    安装完成之后,再次允许脚本。这次我们选择2.

  2. 这一步我们需要准备推流地址和推流码。这里我以youtube的为例子,把推流地址和推流码复制过来。

注意先复制1,然后复制2,这中间要有斜杠。有的直播平台会自己带,有的没有。最后服务器上是这样的。

一定要注意推流地址和推流码之间的’/’
5. 然后回车进入下一步。把MP4格式的视频准备好,就是把你想直播的mp4放到服务器上,不会命令行操作的可用moba这些的ssh终端操作。最好放在和这个脚本一个路径的地方,当然别的地方也可以,随意~
6. 至此,我们推流脚本和要推流的视频都已经准备好了。其实已经开始直播了,但是我们这里要再使用一个screen工具来实现后台执行这个命令,让我们可以在服务器上可以继续干别的事情 yum -y install screen 。安装即可。
7.接着我们还是在当前路径,即视频和脚本所在的路径输入 screen。新建一个屏幕。然后执行bash test.sh 然后 输入2.然后输入推流地址和推流码。然后回车,然后输入你视频存放的路径。继续回车,选择是否要添加水印。如果服务器cpu不错。,可以开启,否则不开启。继续回车,就开始推流了

  1. 此时我们按住CTRL + A +D。即可让程序后台运行。
  2. 若是想中断直播,输入,screen -ls 。

看到前面的进程号之后,kill掉即可。 若要重新回去这个屏幕 screen -r 进程号 即可。

14:20欢迎访问我的博客站,有更多开源项目分享:vwo50

这篇关于5分钟教你利用服务器,打造1个 7*24H直播的直播间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/468567

相关文章

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

Windows server服务器使用blat命令行发送邮件

《Windowsserver服务器使用blat命令行发送邮件》在linux平台的命令行下可以使用mail命令来发送邮件,windows平台没有内置的命令,但可以使用开源的blat,其官方主页为ht... 目录下载blatBAT命令行示例备注总结在linux平台的命令行下可以使用mail命令来发送邮件,Win

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

Ubuntu 22.04 服务器安装部署(nginx+postgresql)

《Ubuntu22.04服务器安装部署(nginx+postgresql)》Ubuntu22.04LTS是迄今为止最好的Ubuntu版本之一,很多linux的应用服务器都是选择的这个版本... 目录是什么让 Ubuntu 22.04 LTS 变得安全?更新了安全包linux 内核改进一、部署环境二、安装系统

nginx配置多域名共用服务器80端口

《nginx配置多域名共用服务器80端口》本文主要介绍了配置Nginx.conf文件,使得同一台服务器上的服务程序能够根据域名分发到相应的端口进行处理,从而实现用户通过abc.com或xyz.com直... 多个域名,比如两个域名,这两个域名其实共用一台服务器(意味着域名解析到同一个IP),一个域名为abc

pycharm远程连接服务器运行pytorch的过程详解

《pycharm远程连接服务器运行pytorch的过程详解》:本文主要介绍在Linux环境下使用Anaconda管理不同版本的Python环境,并通过PyCharm远程连接服务器来运行PyTorc... 目录linux部署pytorch背景介绍Anaconda安装Linux安装pytorch虚拟环境安装cu

MySQL 中的服务器配置和状态详解(MySQL Server Configuration and Status)

《MySQL中的服务器配置和状态详解(MySQLServerConfigurationandStatus)》MySQL服务器配置和状态设置包括服务器选项、系统变量和状态变量三个方面,可以通过... 目录mysql 之服务器配置和状态1 MySQL 架构和性能优化1.1 服务器配置和状态1.1.1 服务器选项

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署