<div><p style="box-sizing: border-box; margin-bottom: 20px; overflow-wrap: break-word; background-color: rgb(255, 255, 255);"><span style="font-family:moonbridge;color:#555555;"><span style="font-size: 15px;">撸了个FFmpeg的循环推流脚本,你的VPS除了吃灰以外还能24小时不间断直播视频。自己用的脚本,单纯分享一下,如有问题自行解决。</span></span></p><p style="box-sizing: border-box; margin-bottom: 20px; overflow-wrap: break-word; background-color: rgb(255, 255, 255);"><span style="font-family:moonbridge;color:#555555;"><span style="font-size: 15px;">需要配合screen运行:</span></span></p><pre class="prettyprint" style="box-sizing: border-box; overflow: auto; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 12px; line-height: 20px; font-family: "courier new"; padding: 10px 15px; margin-top: 20px; margin-bottom: 20px; color: rgb(248, 248, 212); word-break: break-all; overflow-wrap: break-word; background-color: rgb(39, 40, 34); border-width: initial; border-style: none; border-color: initial; border-radius: 4px; max-height: 637px;"><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">yum </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">y install screen</span></pre><p style="box-sizing: border-box; margin-bottom: 20px; overflow-wrap: break-word; background-color: rgb(255, 255, 255);"><span style="font-family:moonbridge;color:#555555;"><span style="font-size: 15px;">开个新窗口:</span></span></p><pre class="prettyprint" style="box-sizing: border-box; overflow: auto; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 12px; line-height: 20px; font-family: "courier new"; padding: 10px 15px; margin-top: 20px; margin-bottom: 20px; color: rgb(248, 248, 212); word-break: break-all; overflow-wrap: break-word; background-color: rgb(39, 40, 34); border-width: initial; border-style: none; border-color: initial; border-radius: 4px; max-height: 637px;"><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">screen </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">S stream</span></pre><p style="box-sizing: border-box; margin-bottom: 20px; overflow-wrap: break-word; background-color: rgb(255, 255, 255);"><span style="font-family:moonbridge;color:#555555;"><span style="font-size: 15px;">功能:</span></span></p><p style="box-sizing: border-box; margin-bottom: 20px; overflow-wrap: break-word; background-color: rgb(255, 255, 255);"><span style="font-size: 15px; color: rgb(85, 85, 85); font-family: moonbridge;">1.目前支持循环推流mp4格式的视频,注意视频文件的名字不能含有空格或其他特殊符号。</span></p><p style="box-sizing: border-box; margin-bottom: 20px; overflow-wrap: break-word; background-color: rgb(255, 255, 255);"><span style="font-family:moonbridge;color:#555555;"><span style="font-size: 15px;">2.视频加水印,水印位置默认在右上角。</span></span></p><p style="box-sizing: border-box; margin-bottom: 20px; overflow-wrap: break-word; background-color: rgb(255, 255, 255);"><span style="font-family:moonbridge;color:#555555;"><span style="font-size: 15px;">完整代码如下:</span></span></p><pre class="prettyprint" style="box-sizing: border-box; overflow: auto; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 12px; line-height: 20px; font-family: "courier new"; padding: 10px 15px; margin-top: 20px; margin-bottom: 20px; color: rgb(248, 248, 212); word-break: break-all; overflow-wrap: break-word; background-color: rgb(39, 40, 34); border-width: initial; border-style: none; border-color: initial; border-radius: 4px; max-height: 637px;"><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);">#!/bin/bash</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
PATH</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">=</span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">/bin:/</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">sbin</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">:</span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">/usr/</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">bin</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">:</span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">/usr/</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">sbin</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">:</span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">/usr/</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">local</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">/</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">bin</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">:</span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">/usr/</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">local</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">/</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">sbin</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">:~/</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">bin
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">export</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> PATH
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);">#=================================================================#</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"># System Required: CentOS7 X86_64 #</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"># Description: FFmpeg Stream Media Server #</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"># Author: LALA </span><qq1062951199 style="box-sizing: border-box;"><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"> #</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"># Website: https://www.lala.im #</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);">#=================================================================#</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"># 颜色选择</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
red</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">=</span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">'\033[0;31m'</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
green</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">=</span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">'\033[0;32m'</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
yellow</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">=</span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">'\033[0;33m'</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
font</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">=</span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"\033[0m"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
ffmpeg_install</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">(){</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"># 安装FFMPEG</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
read </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">p </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"你的机器内是否已经安装过FFmpeg4.x?安装FFmpeg才能正常推流,是否现在安装FFmpeg?(yes/no):"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="typ" style="box-sizing: border-box; color: rgb(166, 226, 46);">Choose</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">if</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">[</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> $Choose </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">=</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"yes"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">];</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">then</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
yum </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">y install wget
wget </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">--</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">no</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">check</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">certificate https</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">:</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);">//www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.0.3-64bit-static.tar.xz</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
tar </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">xJf ffmpeg</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">4.0</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">.</span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">3</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">64bit</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">static</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">.</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">tar</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">.</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">xz
cd ffmpeg</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">4.0</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">.</span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">3</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">64bit</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">static</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
mv ffmpeg </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">/</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">usr</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">/</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">bin </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">&&</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> mv ffprobe </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">/</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">usr</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">/</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">bin </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">&&</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> mv qt</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">faststart </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">/</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">usr</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">/</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">bin </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">&&</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> mv ffmpeg</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">10bit</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">/</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">usr</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">/</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">bin
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">fi</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">if</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">[</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> $Choose </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">=</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"no"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">]</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">then</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
echo </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">e </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"${yellow} 你选择不安装FFmpeg,请确定你的机器内已经自行安装过FFmpeg,否则程序无法正常工作! ${font}"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
sleep </span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">2</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">fi</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">}</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
stream_start</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">(){</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"># 定义推流地址和推流码</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
read </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">p </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"输入你的推流地址和推流码(rtmp协议):"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> rtmp
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"># 判断用户输入的地址是否合法</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">if</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">[[</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> $rtmp </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">=~</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"rtmp://"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">]];</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">then</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
echo </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">e </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"${green} 推流地址输入正确,程序将进行下一步操作. ${font}"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
sleep </span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">2</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">else</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
echo </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">e </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"${red} 你输入的地址不合法,请重新运行程序并输入! ${font}"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">exit</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">1</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">fi</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"># 定义视频存放目录</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
read </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">p </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"输入你的视频存放目录 (格式仅支持mp4,并且要绝对路径,例如/opt/video):"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> folder
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"># 判断是否需要添加水印</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
read </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">p </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"是否需要为视频添加水印?水印位置默认在右上方,需要较好CPU支持(yes/no):"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> watermark
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">if</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">[</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> $watermark </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">=</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"yes"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">];</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">then</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
read </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">p </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"输入你的水印图片存放绝对路径,例如/opt/image/watermark.jpg (格式支持jpg/png/bmp):"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> image
echo </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">e </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"${yellow} 添加水印完成,程序将开始推流. ${font}"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"># 循环</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">while</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">true</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">do</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
cd $folder
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">for</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> video </span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">in</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> $</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">(</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">ls </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">*.</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">mp4</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">)</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">do</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
ffmpeg </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">re </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">i </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"$video"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">i </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"$image"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">filter_complex overlay</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">=</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">W</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">w</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">5</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">:</span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">5</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">c</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">:</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">v libx264 </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">c</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">:</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">a aac </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">b</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">:</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">a </span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">192k</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">strict </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">2</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">f flv $</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">{</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">rtmp</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">}</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">done</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">done</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">fi</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">if</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">[</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> $watermark </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">=</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"no"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">]</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">then</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
echo </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">e </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"${yellow} 你选择不添加水印,程序将开始推流. ${font}"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"># 循环</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">while</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">true</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">do</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
cd $folder
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">for</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> video </span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">in</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> $</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">(</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">ls </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">*.</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">mp4</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">)</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">do</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
ffmpeg </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">re </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">i </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"$video"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">c</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">:</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">v copy </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">c</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">:</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">a aac </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">b</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">:</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">a </span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">192k</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">strict </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">2</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">f flv $</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">{</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">rtmp</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">}</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">done</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">done</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">fi</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">}</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"># 停止推流</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
stream_stop</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">(){</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
screen </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">S stream </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">X quit
killall ffmpeg
</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">}</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"># 开始菜单设置</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
echo </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">e </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"${yellow} CentOS7 X86_64 FFmpeg无人值守循环推流 For LALA.IM ${font}"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
echo </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">e </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"${red} 请确定此脚本目前是在screen窗口内运行的! ${font}"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
echo </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">e </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"${green} 1.安装FFmpeg (机器要安装FFmpeg才能正常推流) ${font}"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
echo </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">e </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"${green} 2.开始无人值守循环推流 ${font}"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
echo </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">e </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"${green} 3.停止推流 ${font}"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
start_menu</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">(){</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
read </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">p </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"请输入数字(1-3),选择你要进行的操作:"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> num
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">case</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"$num"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);"> </span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">in</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">1</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">)</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
ffmpeg_install
</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">;;</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">2</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">)</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
stream_start
</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">;;</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="lit" style="box-sizing: border-box; color: rgb(174, 129, 255);">3</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">)</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
stream_stop
</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">;;</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">*)</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
echo </span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">-</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">e </span><span class="str" style="box-sizing: border-box; color: rgb(230, 219, 116);">"${red} 请输入正确的数字 (1-3) ${font}"</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">;;</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="kwd" style="box-sizing: border-box; color: rgb(249, 38, 89);">esac</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="pun" style="box-sizing: border-box; color: rgb(248, 248, 242);">}</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
</span><span class="com" style="box-sizing: border-box; color: rgb(147, 161, 161);"># 运行开始菜单</span><span class="pln" style="box-sizing: border-box; color: rgb(102, 217, 239);">
start_menu</span></qq1062951199></pre><p style="box-sizing: border-box; margin-bottom: 20px; overflow-wrap: break-word; background-color: rgb(255, 255, 255);"><span style="font-family:moonbridge;color:#555555;"><span style="font-size: 15px;">效果:</span></span></p></div><div><span style="color:#555555;"></span></div><div> </div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div> |