Streaming-Media-Server-Pro

前言

我的目标是将程序打造成属于每个人的直播源服务,且对每个人完全开源免费!可作为家庭影院电视、视频等流媒体的提供商,兼容全平台,只需下载视频播放器调用接口链接即可享用,不多说开始喽。

部署教程

免费体验接口:http://stream.naihe.cf/program.m3u

大家使用接口体验即可,不要造成服务器太大流量压力,影响其他人的体验感受,谢谢配合。

该教程是我呕心沥血写成,使用教程包括程序部署和每个接口使用说明等,尽量保证每个人都会使用,部署总结概括需要做到以下及几点:

  1. 安装python(必装)
  2. 安装PostgreSql或者MySQL数据库(推荐安装)
  3. 安装Redis数据库(可选安装)
  4. 一定的耐心(看完下面详细的教程)

先说明我的配置

服务器1:1G内存+10G存储,mysql数据库

服务器2:redis数据库 200M,托管在服务商中

分布式下载5台,托管在服务商中

下载 ts + 上传数据库 ~ 1s时间

以上仅供参考,实际1台服务器即可使程序正常运行。

服务器位置最好在香港、日本等物理距离近的地方,尽量不要选择国内主机,否则网络请求被墙,本地搭建要后台挂梯子工具

第一步

安装Mysql(建议选择安装)

要求版本5.1.6及以上

部署教程自行百度,如果不安装将使用不了视频缓冲区功能(online.m3u8接口将失效),不安装就跳到第二步

开启mysql后看下面

执行以下sql命令,不会就百度

创建数据库
CREATE DATABASE media
创建video表
create table media.video(
vname varchar(30) not null,
CONSTRAINT video_pk PRIMARY KEY (vname),
vcontent MEDIUMBLOB NOT NULL,
vsize varchar(20) NULL,
ctime timestamp(0) default now()
);
设置定时删除事件
SET GLOBAL event_scheduler = ON;	# 开启事件调度器
use media;
DROP event IF EXISTS auto_delete;
CREATE EVENT auto_delete
ON SCHEDULE EVERY 30 minute # xx分钟根据数据库的存储和查询性能综合决定
DO
TRUNCATE video;

在config.ini配置文件中替换你的ip、port等参数

第二步

安装Redis(可选安装)

部署教程自行百度,该数据库用于缓存参数,以及方便多服务器共享数据,帮助重启服务数据不丢失。

我在程序中专门设置了内存缓存参数,所以也可以不安装,但缺点重启服务数据丢失。

不安装就跳到第三步

开启Redis后看下面

在config.ini配置文件中替换你的ip、port等参数

第三步

config.ini文件配置(重要必选)

config.ini在程序路径.app/assets/config.ini

根据安装数据库实际情况配置参数,例如MySQL,在config.ini更改为你的参数即可,PostgreSql数据库类似填写,不懂就不填。

[default]
# defaultdb 选择参数:mysql | postgresql | 留空则不连接数据库
defaultdb = [mysql]
# 将下列5行改为你的参数
host = 192.168.1.x # ip地址
user = root # 用户名
password = 123456789 # 密码
port = 3306 # 端口
database = media # 数据库名

设置外网访问:你的ip+端口 或者 域名 + 端口

# 你的外网映射端口号,默认8080
port = 8080
# 修改192.168.1.x为你的ip或域名
localhost = http://192.168.1.x:%(port)s

视频下载选项,部署了分布式下载选online,否则选local,该前提是已安装数据库

# downchoose参数:local | online
downchoose = local

部署分布式代码下载,你需要点击跳转部署(前提:需要在线托管服务,或者主机)

免费下载code托管:

​ pythonanywhere:https://www.pythonanywhere.com

​ heroku:https://www.heroku.com

免费redis:https://console.upstash.com

设置视频缓冲区,安装了数据库看这里

# 视频缓冲区大小,local推荐2-3,online推荐4-5
# 实际根据网络带宽和计算机性能决定
vbuffer = 3
# 分布式视频下载器
# local示例["https://"+localhost+"/url3?url=", ...]
# online示例["https://www.example1.com/url3?url=", ...]
# 有多个分布式下载链接使用方法如下,否则参数不要改
downurls = ["%{localhost}s/url3?url=",
"https://www.example1.com/url3?url=",
"https://www.example2.com/url3?url=",...]

可选项

程序默认使用我提供的EPG节目单(每日会自动更新),如果你需要创建该脚本,需要在config.ini配置文件提供xmlowner、xmlrepo、xmlaccess_token这三个参数。

# 存放节目单厂库
xmlowner = 用户名
xmlrepo = 仓库名
xmlaccess_token = token

第四步

安装Python(必选)

安装教程自行百度,该项是程序的核心支撑服务,一定要安装

安装Python后看下面,使用docker部署点这里

命令终端执行

git clone https://github.com/239144498/Streaming-Media-Server-Pro.git

安装python环境依赖

pip install -r requirements.txt

额外功能

该程序支持自定义源,如果你有自己的源,可以添加到该程序中,在app/assets/diyepg.txt文件中添加你的频道,如下图:

让程序跑起来

python main.py

用Docker怎么运行?

正在写教程,敬请关注。

完整配置信息

# 根据前面步骤要求修改
# 先看教程,不懂就不要乱改参数,后果将导致程序运行出错!
[default]
# defaultdb 可选参数:mysql | postgresql | 不连接数据库则留空
defaultdb =
# downchoose 可选参数:local | online
downchoose = local
# 你的外网映射端口号,默认8080
port = 8080
# 修改192.168.1.x为你的ip或域名
localhost = http://192.168.1.211:%(port)s
# vbuffer视频缓冲区大小,local推荐2-3,online推荐4-5,实际根据带宽和计算机性能决定
vbuffer = 3
# 以下3个参数不懂就不要动
downurls = ["%(localhost)s/url3?url="]
host1 = 4gtvfreepc-cds.cdn.hinet.net
host2 = 4gtvfree-cds.cdn.hinet.net [mysql]
host = 192.x.91.34
user = root
password = 123456789
port = 3306
database = media [postgresql]
host = 192.x.91.34
user = root
password = 123456789
port = 5432
database = media [redis]
host = 192.x.91.34
port = 6379
password = 123456789 [other]
# 存放节目单厂库
xmlowner =
xmlrepo =
xmlaccess_token =
# 接口限制指定ip才能用,默认使用我提供的接口

接口使用教程

正在写教程,敬请关注。

开源IPTV源服务程序使用教程的更多相关文章

  1. Creator开源游戏、插件、教程、视频汇总

    Creator开源游戏.插件.教程.视频汇总 来源 http://forum.cocos.com/t/creator/44782 王哲首席客服   17-03-17    4   史上最全,没有之一. ...

  2. 给potplayer配置iptv源,看所有你想看的电视

    目录 一.展示: 二.下载 三.播放 一.展示: 二.下载 Github 上的开源项目:iptv-org/iptv 传送门: https://github.com/iptv-org/iptv 该项目包 ...

  3. Greenplum 源码安装教程 —— 以 CentOS 平台为例

    Greenplum 源码安装教程 作者:Arthur_Qin 禾众 Greenplum 主体以及orca ( 新一代优化器 ) 的代码以可以从 Github 上下载.如果不打算查看代码,想下载编译好的 ...

  4. 开源库Magicodes.ECharts使用教程

    目录 1    概要    2 2    Magicodes.ECharts工作原理    3 2.1    架构说明    3 2.1.1    Axis    4 2.1.2    CommonD ...

  5. GJM : Taurus.MVC 2.0 开源发布:WebAPI开发教程 [转载]

    Taurus.MVC 2.0 开源发布:WebAPI开发教程 转载自http://www.cnblogs.com/cyq1162/p/6069020.html 因是新手  粘贴时有一个版权问题 本文原 ...

  6. NetBSD是个开源到源码的系统

    How to get NetBSD NetBSD is an Open Source operating system, and as such it is freely available for ...

  7. Android 开源项目源码解析(第二期)

    Android 开源项目源码解析(第二期) 阅读目录 android-Ultra-Pull-To-Refresh 源码解析 DynamicLoadApk 源码解析 NineOldAnimations ...

  8. 百度智能手环方案开源(含源码,原理图,APP,通信协议等)

    分享一个百度智能手环开源项目的设计方案资料. 项目简介 百度云智能手环的开源方案是基于Apache2.0开源协议,开源内容包括硬件设计文档,原理图.ROM.通讯协议在内的全套方案,同时开放APP和云服 ...

  9. Unity3D游戏-愤怒的小鸟游戏源码和教程(二)

    Unity愤怒的小鸟游戏教程(二) 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) AngryEva游戏效果 ...

随机推荐

  1. JavaScript写倒计时

    在网页中,特别是电商网站中,倒计时的出现频率很高,接下来给大家介绍一下怎么用JavaScript写一个倒计时.代码如下: 首先我们通过Date构造函数的方法创建一个倒计时的结束的时间.并将其转换为毫秒 ...

  2. 程序员必备,一款让你提高工作效率N倍的神器uTools

    下载地址:https://www.aliyundrive.com/s/f7PU7QxdxEz uTools 是什么? uTools = your tools(你的工具集) uTools 是一个极简.插 ...

  3. TCP和UDP协议的区别以及原理

    参考文章https://blog.csdn.net/weixin_38483133/article/details/123864253

  4. 《ASP.NET Core 6框架揭秘》样章发布[200页/5章]

    作为<ASP.NET Core 3 框架揭秘>的升级版,<ASP.NET Core 6框架揭秘>不仅针对ASP.NET Core 6的新特性进行了修订,并添加了若干原来没有的内 ...

  5. Detecting Rumors from Microblogs with Recurrent Neural Networks(IJCAI-16)

    记录一下,很久之前看的论文-基于RNN来从微博中检测谣言及其代码复现. 1 引言 现有传统谣言检测模型使用经典的机器学习算法,这些算法利用了根据帖子的内容.用户特征和扩散模式手工制作的各种特征,或者简 ...

  6. putchar与getchar

    #include <stdio.h>#include <stdlib.h>void myputs(char*p) //此处的*号是标志,标志这P是一个指针{ if(p==NUL ...

  7. Linux shell脚本进阶使用

    shell的循环控制语句 - continue:提前结束某次循环,重新开始下一次 - break:提前结束某层循环 范例: #求100以内的奇数和 #!/bin/bash sum=0 for i in ...

  8. 论文阅读 A Data-Driven Graph Generative Model for Temporal Interaction Networks

    13 A Data-Driven Graph Generative Model for Temporal Interaction Networks link:https://scholar.googl ...

  9. nginx虚拟主机测试

    一.基于域名的nginx虚拟主机 基于域名的nginx虚拟主机的操作步骤: 1 .为虚拟主机提供域名和IP的映射(也可以使用DNS正向解析) echo "172.16.10.101 www. ...

  10. LNMP架构及DISCUZ论坛部署

    1)(5分)服务器IP地址规划:client:12.0.0.12/24,网关服务器:ens36:12.0.0.1/24.ens33:172.16.10.1/24,Web1:172.16.10.10/2 ...