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. SAP Web Dynpro-协助类

    在Web Dynpro组件中,您可以创建从抽象类继承的唯一分配的类. 协助类可以存储组件中必需的但未与布局链接的编码. 您可以将动态文本存储在协助类中,也可以在运行时合并文本,也可以将变量存储在文本池 ...

  2. SAP Picture Control(图片加载)

    Screen display 效果 源代码 program sap_picture_demo. set screen 200. TYPE-POOLS cndp. ******************* ...

  3. SAP 实例 9 Text output

    REPORT demo_show_text. CLASS demo DEFINITION. PUBLIC SECTION. CLASS-METHODS main. ENDCLASS. CLASS de ...

  4. UiPath官方视频Level1

    [UiPath官方视频Level1]第一课-UiPath简介https://www.bilibili.com/video/BV1zJ41187vB [UiPath官方视频Level1]第二课-变量和数 ...

  5. 8. SparkSQL综合作业

    综合练习:学生课程分数 网盘下载sc.txt文件,分别创建RDD.DataFrame和临时表/视图: 分别用RDD操作.DataFrame操作和spark.sql执行SQL语句实现以下数据分析: 总共 ...

  6. day03_2_流程控制

    # 流程控制 学习目标: ~~~txt1. idea安装与使用2. 流程控制if...else结构3. 流程控制switch结构4. 流程控制循环结构5. 流程控制关键字~~~ # 一.流程控制概述 ...

  7. 五分钟给你的 gRPC服务 加上 HTTP 接口

    gRPC 服务要加 HTTP 接口? go-zero 给大家带来极简的 RESTful 和 gRPC 服务开发体验的同时,社区又给我们提出了新的期望: 我想只写一次代码 既要 gRPC 接口 也要 H ...

  8. NOI / 2.5基本算法之搜索-6044:鸣人和佐助详解

    总时间限制: 1000ms 内存限制: 65536kB 题目 佐助被大蛇丸诱骗走了,鸣人在多少时间内能追上他呢? 已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置.地图上的每个位置都可以走到, ...

  9. CF665B Shopping

    CF665B Shopping 题目描述 Ayush is a cashier at the shopping center. Recently his department has started ...

  10. 使用JAVA CompletableFuture实现流水线化的并行处理,深度实践总结

    大家好,又见面啦. 在项目开发中,后端服务对外提供API接口一般都会关注响应时长.但是某些情况下,由于业务规划逻辑的原因,我们的接口可能会是一个聚合信息处理类的处理逻辑,比如我们从多个不同的地方获取数 ...