这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 livestreamer,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
livestreamer - 从各种服务中提取流并将它们传输到视频播放器中
选择
在线课程
Livestreamer 是命令行应用程序,这意味着这里描述的命令应该是
输入终端。 在 Windows 上,这意味着您应该打开 命令 提示 or
PowerShell的, 在 Mac OS X 上打开 终端 应用程序,如果您使用的是 Linux 或 BSD,您可能
已经知道演习。
Livestreamer 的工作方式是它只是一种提取和传输流的手段,
播放由外部视频播放器完成。 Livestreamer 与 VLC or
MPV,它们也是跨平台的,但其他播放器也可能兼容,请参阅
球员 页面以获得完整的概述。
现在要开始实际使用 Livestreamer,假设您想观看直播
位于 http://twitch.tv/day9tv,你首先告诉 Livestreamer 在哪里尝试
从中提取流。 这是通过为命令提供 URL 来完成的 livestreamer 作为
第一个论点:
$ 直播者 twitch.tv/day9tv
[cli][info] 为 URL twitch.tv/day9tv 找到匹配的插件 twitch
可用流:音频,高,低,中,移动(最差),源(最佳)
注意:
在处理 HTTP URL 时,您不需要包含协议,例如
twitch.tv/day9tv 打字足够快。
此命令将告诉 Livestreamer 尝试从指定的 URL 中提取流,
如果成功,则打印出可供选择的可用流列表。
要选择一个流并开始播放,我们只需添加流名称作为第二个参数
以及 livestreamer 命令:
$ livestreamer twitch.tv/day9tv 来源
[cli][info] 为 URL twitch.tv/day9tv 找到匹配的插件 twitch
[cli][info] 打开流:源(hls)
[cli][info] 起始玩家:vlc
您选择的流现在应该在播放器中播放。 这是一个常见的用例
想要开始最高质量的流,而不是被它的命名所困扰。 去做这个
只需指定 世界上最好的 因为流名称和 Livestreamer 将尝试对流进行排名和
打开最高质量之一。 您也可以指定 最差 以获得最低质量。
既然您对 Livestreamer 的工作原理有了基本的了解,您可能需要研究一下
根据您自己的需要对其进行定制,例如:
· 创建一个 配置 文件 您要使用的选项
· 设置你的播放器 缓存 一些 data 在播放流之前帮助避免
缓冲问题
配置 文件
每次都写命令行选项很不方便,这就是 Livestreamer 的原因
能够从配置文件中读取选项。
Livestreamer 将根据您的平台在不同位置查找配置文件:
┌────────────────────┬────────────────────────────── ────────────────────┐
│平台│位置│
└──────────────────┴────────────────────────────── ────────────────────┘
│类Unix (POSIX) │ │
│ │ · $XDG_CONFIG_HOME/livestreamer/config │
│ │ │
│ │ · ~/.livestreamerrc │
├──────────────────┼────────────────────────────── ────────────────────┤
│Windows │%APPDATA%\livestreamer\livestreamerrc │
└──────────────────┴────────────────────────────── ────────────────────┘
您也可以使用 --配置 选项。
注意:
· $XDG_CONFIG_HOME is 〜/ .config 如果它没有被覆盖
· %APPDATA% 通常是 <你的 用户 目录>\应用程序 时间
注意:
在 Windows 上,安装程序创建了一个默认配置,但在任何其他平台上
您必须自己创建文件。
句法
配置文件是一个简单的文本文件,应该包含一个 命令行 选项 (省略
破折号)每行的格式:
选项=值
或者对于没有价值的选项:
选项
注意:
使用的任何引号都将是值的一部分,因此仅在值需要它们时才使用,例如
指定路径包含空格的玩家。
例如:
# 玩家选项
播放器=mpv --cache 2048
玩家禁止接近
# 使用 Twitch 进行身份验证
twitch-oauth-token=mytoken
PLUGIN 具体 配置 文件
您可能只想为某些插件使用特定选项。 这可以通过
将这些设置放在插件特定的配置文件中。 这些配置中的选项
当使用与插件匹配的 URL 时,文件将覆盖主配置文件。
Livestreamer 希望此配置的名称与主配置一样,但具有 . 姓名>
附加到最后。
例子
┌────────────────────┬────────────────────────────── ──────────────────────────┐
│平台│位置│
├──────────────────┼────────────────────────────── ──────────────────────────┤
│类Unix (POSIX) │ │
│ │ · $XDG_CONFIG_HOME/livestreamer/配置。抽搐 │
│ │ │
│ │ · ~/.livestreamerrc.ustreamtv │
├──────────────────┼────────────────────────────── ──────────────────────────┤
│Windows │%APPDATA%\livestreamer\livestreamerrc。YouTube │
└────────────────────┴────────────────────────────── ──────────────────────────┘
看看在 名单 of 插件 查看每个内置插件的名称。
PLUGIN 具体 用法
验证中 - Twitch
可以通过授予 Livestreamer 访问权限来访问 Twitch 上的订阅内容
您的帐户。
通过创建 Livestreamer 将用于访问的 OAuth 令牌来完成身份验证
你的帐户。 它是这样完成的:
$ livestreamer --twitch-oauth-authenticate
这将打开一个网络浏览器,Twitch 会在其中询问您是否要提供 Livestreamer
访问您帐户的权限,然后将您转至包含进一步说明的页面
关于如何使用它。
验证中 - Crunchyroll
Crunchyroll 需要使用高级帐户进行身份验证才能访问他们的一些
内容。 为此,该插件提供了几个选项来输入您的信息,
--crunchyroll-用户名 和 --crunchyroll-密码.
你可以这样登录:
$ livestreamer --crunchyroll-用户名=xxxx --crunchyroll-密码=xxx http://crunchyroll.com/a-crunchyroll-episode-link
注意:
如果您省略密码,livestreamer 会要求它。
登录后,该插件会确保保存会话凭据以避免询问您
再次使用用户名和密码。
尽管如此,这些凭据在有限的时间内有效,因此它可能是
将您的用户名和密码保存在您的 配置 文件 反正。
警告:
此插件使用的 API 不应该可用于在计算机上使用它。 这
插件尝试使用自定义标头并遵循 API 作为有效设备混合
通常的流程(例如重复使用凭据),但这并不能保证您的帐户将
避免被发现异常行为。
HTTP 代理 - Crunchyroll
您可以使用 --http-代理 和 --https-代理 选项(因为插件你需要两个
使用两种协议)通过代理访问 Crunchyroll 服务器,以便能够
流区域锁定内容。
这样做时,您很可能会被拒绝访问流; 这个
发生的原因是插件使用的会话和凭据是在记录时获取的
来自您自己的地区,并且服务器仍然假定您在该地区。
为此,插件提供了 --crunchyroll-清除凭证 选项,删除
您保存的会话和凭据并尝试使用您的用户名和
密码。
侧装 PLUGINS
Livestreamer 将尝试从这些目录加载独立插件:
┌────────────────────┬────────────────────────────── ────────────┐
│平台│位置│
├──────────────────┼────────────────────────────── ────────────┤
│类Unix (POSIX) │ $XDG_CONFIG_HOME/livestreamer/plugins │
├──────────────────┼────────────────────────────── ────────────┤
│Windows │%APPDATA%\livestreamer\plugins │
└──────────────────┴────────────────────────────── ────────────┘
注意:
如果添加的插件与内置插件同名,则添加的插件将
取得优先权。 如果您想独立于
直播版。
演奏 内置 流媒体 PROTOCOLS 直接地
今天的服务和 Livestreamer 使用了多种类型的流媒体协议
支持他们中的大多数。 可以告诉 Livestreamer 访问流媒体协议
直接而不是依靠插件为您从 URL 中提取流。
可以通过以 URL 格式指定协议来直接访问协议:
协议://路径[键=值]
访问需要传递额外参数的流(例如 RTMP):
$ livestreamer "rtmp://streaming.server.net/playpath live=1 swfVfy=http://server.net/flashplayer.swf"
大多数流媒体技术只需要您传递一个 HTTP URL,这是一个 Adobe HDS
流:
$ livestreamer hds://streaming.server.net/playpath/manifest.f4m
支持 流 协议
┌────────────────────────────────┬──────────────────── ──────────────────┐
│名称 │ 前缀 │
├────────────────────────────────┼──────────────────── ──────────────────┤
│Adobe HTTP 动态流媒体 │ hds:// │
├────────────────────────────────┼──────────────────── ──────────────────┤
│Akamai HD 自适应流媒体 │ akamaihd:// │
├────────────────────────────────┼──────────────────── ──────────────────┤
│Apple HTTP 直播 │ hls:// hlsvariant:// │
├────────────────────────────────┼──────────────────── ──────────────────┤
│实时消息协议│ rtmp:// rtmpe:// rtmps:// │
│ │ rtmpt:// rtmpte:// │
├────────────────────────────────┼──────────────────── ──────────────────┤
│渐进式 HTTP、HTTPS 等 │ httpstream:// │
└────────────────────────────────┴──────────────────── ──────────────────┘
命令行 用法
$ livestreamer [选项] [URL] [流]
位置 参数
[URL] 尝试从中提取流的 URL。
如果是 HTTP URL,则“http://"可以省略。
[溪流]
流播放。
使用“最佳”或“最差”来表示可用的最高或最低质量。
可以使用逗号分隔的列表指定回退流:
“720p,480p,最佳”
如果没有指定流并且 --默认流 未使用,然后是可用的列表
流将被打印。
一般用途总体评估 选项
-H, - 帮帮我
显示此帮助消息并退出。
-V, - 版
显示版本号并退出。
--插件
打印所有当前安装的插件的列表。
--可以处理 url 网址
检查 Livestreamer 是否有可以处理指定 URL 的插件。
为 false 返回状态代码 1,为 true 返回 0。
对外部脚本很有用。
--配置 文件名
从此配置文件加载选项。
可以重复加载多个文件,在这种情况下选项合并在顶部
彼此的最后一个配置具有最高优先级。
-l 等级, --日志级别 LEVEL
设置日志消息阈值。
有效级别为:无、错误、警告、信息、调试
-Q, - 安静的
隐藏所有日志输出。
“的别名--日志级别 没有任何”。
-j, --json
输出 JSON 表示而不是普通的文本输出。
对外部脚本很有用。
--无版本检查
未使用,出于兼容性原因保留。
--版本检查
运行版本检查并退出。
玩家 选项
-p 命令, --玩家 指挥
将流数据提供给的播放器。 这是一个类似 shell 的语法来支持传递
给玩家的选项。 例如:
“vlc --file-caching=5000”
要使用位于带有空格的路径中的播放器,您必须引用路径:
“'/路径/带空格/vlc'--file-caching=5000”
默认情况下,如果可以在其默认位置找到 VLC,则将使用它。
-a 参数, --玩家参数 争论
此选项允许您自定义放在一起的默认参数
与价值 --玩家 创建要执行的命令。
该值可以包含用大括号 { 和 } 包围的格式化变量。 如果
您需要包含一个大括号字符,它可以通过加倍进行转义,例如 {{ 和
}}。
可用的格式化变量:
文件名
这是播放器将使用的文件名。 它通常是“-”(标准输入),
但也可以是 URL 或文件,具体取决于使用的选项。
通常使用就足够了 --玩家 而不是这个,除非你需要添加
文件名后的参数。
默认为: “{文档名称}”.
-v, --详细播放器
允许播放器显示其控制台输出。
-n, --player-fifo, --先进先出
让播放器通过命名管道而不是标准输入管道读取流。
--播放器-http
让播放器通过 HTTP 而不是 stdin 管道读取流。
--player-连续-http
让播放器通过 HTTP 读取流,但不像 --播放器-http 它会
如果播放器请求,则不断尝试打开流。
如果您的播放器有能力,这使得处理流断开连接成为可能
重新连接到 HTTP 流。 这通常是通过将您的播放器设置为
“重复模式”。
--player-外部-http
无需运行任何播放器即可通过 HTTP 提供流数据。 这有助于允许
智能手机或流媒体盒等外部设备来观看他们不会观看的流媒体
能够否则。
行为将类似于连续 HTTP 选项,但没有播放器程序将
启动,服务器将侦听所有可用连接,而不仅仅是
在本地(环回)接口中。
可用于访问流的 URL 将打印到控制台,并且
可以使用 CTRL-C 中断服务器。
--player-external-http-端口 PORT
如果启用该模式,则用于外部 HTTP 服务器的固定端口。 省略或
设置为 0 以使用随机高 (>1024) 端口。
--玩家直通 类型
以逗号分隔的流类型列表作为 URL 传递给播放器以允许播放器
而是处理流的传输。
可以转换为可播放 URL 的流类型有:
· HLS
· 网址
· rtmp
使用它时,请确保您的播放器可以处理流类型。
--玩家不关闭
默认情况下,Livestreamer 将在流结束时关闭播放器。 这是为了
避免“死”的 GUI 播放器在流结束后挥之不去。
然而,它有时会在播放器出现之前关闭它的副作用
回放其所有缓存数据。
该选项将让玩家决定何时退出。
文件 产量 选项
-o 文档名称, - 输出 文件名
将流数据写入 FILENAME 而不是播放它。
如果文件已存在,系统将提示您。
-F, - 力量
使用 -o 时,即使文件已经存在,也始终写入文件。
-O, --标准输出
将流数据写入标准输出而不是播放它。
资讯 选项
--默认流 流
当未指定流参数时打开此流,例如“最佳”。
--重试流 延迟
将重试获取流,直到在等待 DELAY(秒)时找到流
每次尝试之间。
--重试打开 尝试
将尝试 ATTEMPTS 次打开流直到放弃。
默认为: 1.
--流类型 类型, --流优先级 类型
允许的流类型的逗号分隔列表。
当有多个流时,该顺序将用于分隔流
相同的名称但不同的流类型。
默认为: “rtmp,hls,hds,http,akamaihd”.
--流排序排除 STREAMS
通过排除不需要的流来微调最佳/最差同义词。
使用以下格式的过滤器表达式:
[操作员]
有效的运算符是 >、>=、< 和 <=。 如果未指定运算符,则相等性为
经过测试。
例如,这将排除排名高于“480p”的流:
">480p"
可以通过用逗号分隔每个表达式来使用多个过滤器。
例如,这将从两种质量类型中排除流:
">480p,> 中"
资讯 运输 选项
--hds-live-edge SECONDS
实时 HDS 流将从流的边缘开始。
默认为: 10.0.
--hds-段尝试 尝试
在放弃之前应该尝试多少次下载每个 HDS 段。
默认为: 3.
--hds-段线程 螺纹
用于下载 HDS 段的线程池的大小。 最小值为 1 且
最大值为 10。
默认为: 1.
--hds-段超时 超时
HDS 段连接和读取超时。
默认为: 10.0.
--hds-超时 超时
从 HDS 流读取数据超时。
默认为: 60.0.
--hls-live-edge 细分市场
从末尾开始实时 HLS 流的分段数。
值越低,来自源的延迟越低,但也
增加缓冲的机会。
默认为: 3.
--hls-段尝试 尝试
在放弃之前应该尝试多少次来下载每个 HLS 段。
默认为: 3.
--hls-段线程 螺纹
用于下载 HLS 段的线程池的大小。 最小值为 1 且
最大值为 10。
默认为: 1.
--hls-段超时 超时
HLS 段连接和读取超时。
默认为: 10.0.
--hls-超时 超时
从 HLS 流读取数据超时。
默认为: 60.0.
--http-流超时 超时
从 HTTP 流读取数据超时。
默认为: 60.0.
--ringbuffer 大小 尺寸
环形缓冲区的最大大小。 添加 M 或 K 后缀以指定兆字节或千字节
而不是字节。
环形缓冲区用作流和播放器之间的临时存储。
这是为了让我们能够以比玩家想要阅读的速度更快地下载流
它。
尺寸越小,播放器缓冲的机会就越大,如果有
下载速度下降,大小越大,我们可以用作存储的数据越多
赶上速度下降。
只要环缓冲区未满,它还允许您暂时暂停
因为我们继续在后台下载流。
注意:
在低端系统(例如 Raspberry Pi)上建议使用较小的尺寸
播放需要一些额外处理(例如 HDS)以避免的流类型
不必要的后台处理。
默认为: “16M”.
--rtmp-代理 代理, --rtmpdump-代理 代表委任
RTMP 流将使用的 SOCKS 代理。
示例:127.0.0.1:9050
--rtmp-rtmpdump 文档名称, --rtmpdump 文档名称, -r 文件名
RTMPDump 用于访问 RTMP 流。 您可以指定位置
rtmpdump 可执行文件,如果它不在您的 PATH 中。
示例:“/usr/local/bin/rtmpdump”
--rtmp-超时 超时
从 RTMP 流读取数据超时。
默认为: 60.0.
--流段尝试 尝试
在放弃之前应该尝试多少次来下载每个段。
这是其他选项未涵盖的流使用的通用选项,例如流
特定于插件的协议,例如 UStream。
默认为: 3.
--流段线程 螺纹
用于下载段的线程池的大小。 最小值为 1 且
最大值为 10。
这是其他选项未涵盖的流使用的通用选项,例如流
特定于插件的协议,例如 UStream。
默认为: 1.
--流段超时 超时
段连接和读取超时。
这是其他选项未涵盖的流使用的通用选项,例如流
特定于插件的协议,例如 UStream。
默认为: 10.0.
--流超时 超时
从流中读取数据超时。
这是其他选项未涵盖的流使用的通用选项,例如流
特定于插件的协议,例如 UStream。
默认为: 60.0.
--流-url
如果可能,将流转换为 URL 并打印出来。
--子进程命令行, --命令行, -c
打印内部用于播放流的命令行。
这仅适用于 RTMP 流。
--子进程错误日志, --错误日志, -e
将内部子进程的可能错误记录到临时文件中。 该文件将
保存在您的系统临时目录中。
在调试 rtmpdump 相关问题时很有用。
HTTP 选项
--http-代理 HTTP_代理
用于所有 HTTP 请求的 HTTP 代理。
计费示例: http://hostname:港口/
--https-代理 https_proxy
用于所有 HTTPS 请求的支持 HTTPS 的代理。
计费示例: http://hostname:港口/
--http-cookie 键=值
添加到每个 HTTP 请求的 cookie。
可以重复添加多个cookies。
--http 标头 键=值
添加到每个 HTTP 请求的标头。
可以重复添加多个标题。
--http-查询参数 键=值
添加到每个 HTTP 请求的查询参数。
可以重复添加多个查询参数。
--http-忽略-env
忽略环境中设置的 HTTP 设置,例如环境变量
(HTTP_PROXY 等)或 〜/.netrc 身份验证。
--http-no-ssl-验证
不要尝试验证 SSL 证书。
通常是个坏主意,只有在您知道自己在做什么时才使用它。
--http-ssl-证书 文件名
要使用的 SSL 证书。
需要 .pem 文件。
--http-ssl-cert-crt-key CRT_文件名 KEY_FILENAME
要使用的 SSL 证书。
需要一个 .crt 和一个 .key 文件。
--http-超时 超时
所有 HTTP 请求使用的通用超时,但其他选项涵盖的请求除外。
默认为: 20.0.
插件 选项
--插件目录 目录
尝试从这些目录加载插件。
可以通过用分号分隔多个目录来使用它们。
--twitch-oauth-令牌 TOKEN
用于 Twitch 身份验证的 OAuth 令牌。 用 --twitch-oauth-认证
创建令牌。
--twitch-oauth-认证
打开网络浏览器,您可以在其中授予 Livestreamer 访问您的 Twitch 帐户的权限
它创建了一个用于使用的令牌 --twitch-oauth-令牌.
--twitch-cookie COOKIES
Twitch cookie 进行身份验证以允许访问订阅频道。
计费示例:
“_twitch_session_id=x;持久=”
注意:
这种方法是使用 Twitch 进行身份验证的古老而笨拙的方法,使用
--twitch-oauth-认证 是现在推荐且更简单的方法。
--ustream-密码 密码
访问受密码保护的 UStream.tv 频道的密码。
--crunchyroll-用户名 USERNAME
Crunchyroll 用户名以允许访问受限流。
--crunchyroll-密码 [密码]
一个 Crunchyroll 密码,用于 --crunchyroll-用户名.
如果留空,您将收到提示。
--crunchyroll-清除凭证
清除缓存的 Crunchyroll 凭据以启动新会话并重新进行身份验证。
--livestation-电子邮件 邮箱地址
用于访问受限或优质流的 Livestation 帐户电子邮件。
--livestation-密码 密码
一个 Livestation 帐户密码用于 --livestation-电子邮件.
使用 onworks.net 服务在线使用 livestreamer