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

相关文章

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

springboot上传zip包并解压至服务器nginx目录方式

《springboot上传zip包并解压至服务器nginx目录方式》:本文主要介绍springboot上传zip包并解压至服务器nginx目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录springboot上传zip包并解压至服务器nginx目录1.首先需要引入zip相关jar包2.然

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

基于Python打造一个全能文本处理工具

《基于Python打造一个全能文本处理工具》:本文主要介绍一个基于Python+Tkinter开发的全功能本地化文本处理工具,它不仅具备基础的格式转换功能,更集成了中文特色处理等实用功能,有需要的... 目录1. 概述:当文本处理遇上python图形界面2. 功能全景图:六大核心模块解析3.运行效果4. 相

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

使用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.创建区域