Скрипт отправки цикла FFmpeg
Скрипт отправки цикла FFmpeg

Благодаря циклическому push-скрипту FFmpeg ваш VPS может транслировать видео в реальном времени 24 часа в сутки, а также поедать пыль. Я просто делюсь скриптом, который использую, и если возникнут проблемы, могу решить их самостоятельно.

Нужно запустить с экрана:

Язык кода:javascript
копировать
yum -y install screen
Откройте новое окно:

screen -S stream

Функция:

1. В настоящее время поддерживается циклическая потоковая передача видео в формате mp4. Обратите внимание, что имя видеофайла не может содержать пробелы или другие специальные символы.

2. Добавьте водяной знак к видео. По умолчанию водяной знак находится в правом верхнем углу.

Полный код выглядит следующим образом:

Язык кода:javascript
копировать
#!/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(){
# Установить ФФМПЕГ
read -p «Вы уже установили FFmpeg4.x на свой компьютер? Только установив FFmpeg, вы сможете нормально передать поток. Хотите установить FFmpeg сейчас? (да/нет):» Choose
if [ $Choose = "yes" ];then
	yum -y install wget
	wget --no-check-certificate https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.0.3-64bit-static.tar.xz
	tar -xJf ffmpeg-4.0.3-64bit-static.tar.xz
	cd ffmpeg-4.0.3-64bit-static
	mv ffmpeg /usr/bin && mv ffprobe /usr/bin && mv qt-faststart /usr/bin && mv ffmpeg-10bit /usr/bin
fi
if [ $Choose = "no" ]
then
    echo -e "${yellow} Если вы решите не устанавливать FFmpeg, убедитесь, что на вашем компьютере установлен FFmpeg, иначе программа не будет работать должным образом! ${font}"
    sleep 2
fi
	}

stream_start(){
# Определите push-адрес и push-код
read -p «Введите свой push-адрес и push-код (протокол rtmp):» rtmp

# Определить, является ли адрес, введенный пользователем, законным
if [[ $rtmp =~ "rtmp://" ]];then
	echo -e "${green} Если адрес push введен правильно, программа перейдет к следующему шагу. ${font}"
  	sleep 2
	else  
  	echo -e "${red} Введенный вами адрес недействителен. Пожалуйста, перезапустите программу и введите его! ${font}"
  	exit 1
fi 

# Определить каталог хранения видео
read -p "Введите каталог хранения видео (Формат поддерживает только mp4 и требует указания абсолютного пути, например /opt/video):" folder

# Определите, добавлять ли водяной знак
read -p «Нужно ли добавить водяной знак к видео? Положение водяного знака по умолчанию находится в правом верхнем углу и требует лучшей поддержки процессора (да/нет):» watermark
if [ $watermark = "yes" ];then
	read -p «Введите абсолютный путь для хранения изображения водяного знака, например /opt/image/watermark.jpg. (Формат поддерживает jpg/png/bmp):" image
	echo -e "${yellow} После добавления водяного знака программа начнет потоковую передачу. ${font}"
	# цикл
	while true
	do
		cd $folder
		for video in $(ls *.mp4)
		do
		ffmpeg -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}
		done
	done
fi
if [ $watermark = "no" ]
then
    echo -e "${yellow} Если вы решите не добавлять водяной знак, программа начнет потоковую передачу. ${font}"
    # цикл
	while true
	do
		cd $folder
		for video in $(ls *.mp4)
		do
		ffmpeg -re -i "$video" -c:v copy -c:a aac -b:a 192k -strict -2 -f flv ${rtmp}
		done
	done
fi
	}

# Хватит давить
stream_stop(){
	screen -S stream -X quit
	killall ffmpeg
	}

# Настройки меню «Пуск»
echo -e "${yellow} CentOS7 X86_64 Автоматическая потоковая передача FFmpeg For LALA.IM ${font}"
echo -e "${red} Пожалуйста, убедитесь, что этот скрипт в данный момент выполняется в экранном окне! ${font}"
echo -e "${green} 1. Установите FFmpeg. (На компьютере должен быть установлен FFmpeg для правильной отправки потоков) ${font}"
echo -e "${green} 2. Запуск автоматической принудительной потоковой передачи. ${font}"
echo -e "${green} 3.Хватит давить ${font}"
start_menu(){
    read -p «Пожалуйста, введите число (1-3) и выберите операцию, которую хотите выполнить:» num
    case "$num" in
        1)
        ffmpeg_install
        ;;
        2)
        stream_start
        ;;
        3)
        stream_stop
        ;;
        *)
        echo -e "${red} Пожалуйста, введите правильный номер (1-3) ${font}"
        ;;
    esac
	}
Язык кода:javascript
копировать
# Запустить стартовое меню
start_menu

******адрес сценария цикла сайт Лалы ********** https://lala.im/4816.html
Что нужно доработать в скрипте (согласно видео операции Это оптимизировано в соответствии с платформой YouTube.
Язык кода:javascript
копировать
https://www.youtube.com/watch?v=Ko20sPb93fo
Язык кода:javascript
копировать
Не используйте на других платформах Скорость кода может быть неподходящей Случайная функция предоставлена ​​Хуанхэ) Измените строки 72–78, замените и настройте скорость кода в соответствии с производительностью вашего сервера. Это самый быстрый push-поток, выбранный Bilibili Ultrafast, от 30 до 60 кадров, скорость кода от 1500 до 6000 КБ, звук 90–128 КБ. Обратите внимание на выравнивание кода и используйте профессиональный редактор кода.
Язык кода:javascript
копировать
      video=$(find ./ -type f | shuf -n 1) 
      ffmpeg -re -i "$video" -preset ultrafast -vcodec libx264 -g 60 -b:v 6000k -c:a aac -b:a 128k -strict -2 -f flv ${rtmp}
   done
 fi 
  }

Эффект:

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода