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. pytorch初学

    (pytorch_gpu) D:\pytorch-text>pythonPython 3.7.9 (default, Aug 31 2020, 17:10:11) [MSC v.1916 64 ...

  2. 论文解读(KP-GNN)《How Powerful are K-hop Message Passing Graph Neural Networks》

    论文信息 论文标题:How Powerful are K-hop Message Passing Graph Neural Networks论文作者:Jiarui Feng, Yixin Chen, ...

  3. SAP APO - 简介

    SAP高级计划和优化(SAP APO)是SAP SCM中的关键模块之一,在供应链流程中控制供应网络计划,备件计划,TP / VS和需求计划. 它可以帮助组织在动态环境中管理其供应链流程. SAP AP ...

  4. Pisa-Proxy 之 SQL 解析实践

    SQL 语句解析是一个重要且复杂的技术,数据库流量相关的 SQL 审计.读写分离.分片等功能都依赖于 SQL 解析,而 Pisa-Proxy 作为 Database Mesh 理念的一个实践,对数据库 ...

  5. [零基础学IoT Pwn] 环境搭建

    [零基础学IoT Pwn] 环境搭建 0x00 前言 这里指的零基础其实是我们在实战中遇到一些基础问题,再相应的去补充学习理论知识,这样起码不会枯燥. 本系列主要是利用网上已知的IoT设备(路由器)漏 ...

  6. APISpace 月出月落和月相API接口 免费好用

     月出和月落的位置,正如地球围绕太阳变化时产生的日出和日落一样,但是也和月相有关.一天中月亮升起的时间取决于它的月相.当你记得月相取决于太阳,月亮和地球的相对位置应该是明显的.月相是指从地球上看月球直 ...

  7. VMware虚拟机安装基于Debian的统信UOS系统

    统信操作系统(UOS)是一款美观易用.安全可靠的国产桌面操作系统.UOS预装了Google Chrome.WPS Office.搜狗输入法以及一系列原生应用.它既能让您体验到丰富多彩的娱乐生活,也可以 ...

  8. 自建docker仓库

    一.仓库安装 1.系统:CentOS7.9,采用yum安装方式 [root@master ~]# yum install docker-distribution -y ... ... [root@ma ...

  9. 性能浪费的日志案例和使用Lambda优化日志案例

    有些场景的代码执行后,结果不一定会被使用,从而造成性能浪费.而Lambda表达式是延迟执行的,这正好可以作为解决方案,提升性能 性能浪费的日志案例 日志可以帮助我们快速的定位问题,记录程序运行过程中的 ...

  10. 分布式链路追踪Jaeger + 微服务Pig在Rainbond上的实践分享

    随着微服务架构的流行,客户端发起的一次请求可能需要涉及到多个或 N 个服务,致使我们对服务之间的监控和排查变得更加复杂. 举个例子: 某条业务线的某个接口调用服务端时快时慢,这时就需要排查各个服务的日 ...