流式传输定义很广泛,主要指通过网络传送流媒体 ( 如视频,音频 ) 的技术总称。其特定含义为通过网络将影视节目传送到终端。为了通过 Wi-Fi 传输数字音乐,AirPlay 使用 RTSP 协议,即实时流协议。Apple Lossless 音频编解码器以 44100Hz 的速度传输两个音频通道。

请注意,本文会出现数张较高分辨率照片,它们或为 1280x720 webp 格式,为了确保图片可以被正常加载,你需要确认以下事项:

  • 能够正常访问 Github 且能够透过 jsDelivr 以正常速度加载图片
  • 你的设备或浏览器要求兼容 webp 格式的图像,这里特指 Apple 设备及 Safari 浏览器。Safari 浏览器需要更新至支持 webp 的版本,通常来说需要 iOS 14 以上的 iOS 设备或 macOS 11 Big Sur 以上且已经更新至最新 Safari 的 Mac 设备
  • 若满足以上两项仍然出现图片加载缓慢,请耐心等待,全站已开启惰性加载 ( Lazy Loading )

目录

Airplay 介绍

Airplay 是 Apple 的私有协议,可以使得媒体在 iOS 和 macOS 设备之间流转,同时可以传输媒体的元数据,如封面,艺人,类型,分类等

Airplay 在简体中文系统中被翻译为了隔空播放,可以在 iOS 和 macOS 的控制中心打开,同时本文所介绍的基于 iTunes 的家庭媒体系统也是通过 Airplay 流转至播放终端

Airplay 工作原理为在发射端 ( 如 Mac 或 iPhone ) 将流媒体加密,通过 RTSP 协议与接收端握手,将流媒体传输到接收端 ( 通常是 Apple TV 和 HomePod ) 进行硬解码和播放1

显然,Airplay 的传输速度取决于局域网的网速,当然也受限于发射端与接收端的速度,如果局域网内基于 RTSP 协议的速度无法到达视频的码率,观影体验将会糟糕
这里以《普罗米亚》这部影片为例,音频视频总比特率为 13003kbps,这意味着在 RTSP 协议下需要至少 14Mbps 的速度提供较为流畅的播放体验,即我们日常所说的 14M 宽带,但由于 RTSP 协议本身速度并不能达到峰值网速以及 Airplay 协议由多个不同协议构成,建议的网速被要求在 50Mbps 以上

本文中,我们以 Mac 或 PC 作为发射端,iPhone,iPad,Apple TV 作为接收端

iTunes 资料库构建

为了得以构建在局域网络运行良好的 iTunes 资料库以便流式传输

  • 发射端 ( 即存储影片的设备 ) 为一台 Mac 或 PC,并且安装了较新的操作系统和 iTunes
  • 接收端 ( 即用来观看影片的设备 ) 应该为 Apple 设备 ( 如 Apple TV,iPhone,iPad,Mac ),即使 PC 版 iTunes 也能观看,但体验糟糕
  • 局域网络速度至少应该在 50Mbps 以上

如果使用 PC 构建 iTunes 资料库,参考:
通过 PC 上 iTunes 中的“家庭共享”将内容流化到 Apple TV2

如果通过 Mac 上的 iTunes Store 构建 iTunes 资料库 ( 通常为 Mac OS X Lion 至 macOS Mojave ),参考:
配置运行 macOS Mojave 及更早版本的 Mac,或者 Windows PC:在 iTunes 中,前往“文件”>“家庭共享”,然后选取“打开家庭共享”。输入您的 Apple ID 和密码,然后点按“打开家庭共享”3

如果通过 Mac 上的 Apple Music App 以及 Apple TV App 构建 iTunes 资料库 ( macOS Catalina 及之后版本 ),参考:
使用“家庭共享”将媒体从电脑共享到其他设备4

请注意,无论使用哪一种方法构建 iTunes 资料库,发射端与接收端都必须处在同一网络下,并且登录相同的 Apple ID

iTunes 资料库整理

Apple 官方给出了如何在 Apple TV App 中整理 iTunes 资料库,但并未给出细节

这里本文给出如何对元数据 ( metadata ) 进行管理,包括 iTunes 资料库如何透过元数据自动管理分类
以 Apple TV App / macOS Catalina 为例

请注意,Apple TV App 或 iTunes 会询问是否将流媒体整齐有序的排列,其本质是建立单独的文件夹“媒体”,并将拖入 Apple TV App ( 或 iTunes ) 或 使用 Apple TV App ( 或 iTunes ) 添加的本地媒体复制到“媒体”文件夹中。同时,这意味着 Apple TV App ( 或 iTunes ) 对“媒体”文件夹拥有完全读写权力,这一点非常重要

导入流媒体

要想导入流媒体进入资料库,只需要拖入流媒体文件至 Apple TV App ( 或 iTunes ) ,App 会自动将流媒体文件复制到 App 目录下 ( 一般为“媒体”或 “iTunes”)

分类流媒体

点击媒体的 更多信息-显示简介-选项,即可开始分类,通常分类选项为三种:影片,电视剧,家庭视频

  • 影片一般为单集流媒体,如电影,纪录片
  • 电视剧一般为多集流媒体如,如动画番剧,电视连续剧
  • 家庭视频一般为自己拍摄的生活视频

为流媒体设置详细信息即元数据

电视剧的设置选项最多且复杂,这里以电视剧为例:

  • 标题:本集电视剧的标题,并非电视剧总标题,如第 114514 集标题《你怎么穿着品如的衣服》
  • 节目:电视剧的总标题,如《回家的诱惑》,同一部电视剧每一集的节目应该设置为一样,资料库会将其自动归档到同一电视剧节目下
  • 季:英语 Season 的翻译,国内电视剧很少有“季”的概念,这里也指代第几部,如《爱情公寓 4》就是第 4 季
  • 剧集:本集电视剧在本季中属于第几集,如如《爱情公寓 2》第 1 集的剧集是 1
  • 剧集 ID:本集电视剧在整个系列中的ID,如《爱情公寓 2》第 1 集的剧集 ID 是 53 ( 第一季为 52 集 )
  • 发布日期:本集电视剧的发布日期
  • 归类:自己定义的类
  • 类型:如群像,爱情,动作,爱情动作等等,自己定义即可选择归类,比“归类”更加实用
  • 年份:该季发布的年份

请注意,iTunes 资料库主要通过元数据 ( metadata ) 进行自动归档,在电视剧设置中,切勿将标题与节目设置错误 ( 例如每一集设置重复的标题而非重复的节目 ),由于资料库对其“媒体”文件夹有完全读写权力,“媒体”文件夹内的流媒体文件可能会被自动覆盖 ( overwrite ),导致珍贵的流媒体文件丢失

影片混流剪辑修改字幕

在 Apple 设备上,mp4 / m4v 格式才能够被原生播放,而 mkv 格式则需要被第三方播放器播放
在 iOS / Mac 设备上,我们可以轻松安装第三方播放器,例如 Avplayer / IINA,但对于 Apple TV ( 特别是 Apple TV 2 和 Apple TV 3 ),无法识别 iTunes 资料库的 mkv 格式流媒体,在这里对格式转换做简略介绍

在这里我们只讨论对于关键帧操作的无损 ( Lossless ) 分割和转换,目前主要流行的工具为 ffmpeg

  • 调用 ffmpeg 进行流媒体容器转换,速度快且无损,如将 mkv 快速转换为 mp4,对于电影来说通常只需数秒
  • 使用开源跨平台软件 LosslessCut 进行操作,LosslessCut 完全支持 ffmpeg,并且带有友好的图形界面和剪辑轨道

对于流媒体字幕,我们可能需要对字幕文件进行修改,这里使用 gMKVExtractGUI 进行视频,音频和字幕的分离,使用文本编辑器 ( 如 VScode ) 对字幕进行修改,再使用 MKVTool 进行混流,得到封装完成的 mkv 格式的流媒体文件

个人配置方案

我将 Mac mini 2014 作为发射端,将我的资料库存储在其中并开启资料库家庭共享,使用 Apple TV 3 作为接受端,只需要将 Mac mini 2014 全天运行 ( Mac 可以全天工作 ),就可以随时打开电视观看 Mac mini 硬盘内的影片
同时,我的另一台 Mac,iPhone,iPad 也能在任何时候访问资料库内的影片

结尾

从网络上下载影片,番剧,或是电视连续剧,仅供个人交流学习使用,属于版权问题的灰色地带
如果经济条件允许,选择如 Netflix 的平台在线观看更好

文献参考