输出流的配置

本文将介绍如何根据不同用途配置输出流。.

本文内容:
引言
使用参数和配置字符串
配置示例
AAC 高质量音频流
色彩空间与色度抽样 以及交错
多音轨
隐藏式字幕与SCTE
将数据流路由到特定 IP 地址
监控与故障排除


1. 引言

您可以为任何源(包括频道、输入和导演视图)设置 15 种不同的流配置。默认情况下,视频格式会在流开始时从源中复制过来,但您可以将其转码为任意分辨率。.

选择协议后,视频/音频编解码器和 URL 的其他字段将根据您的选择进行相应调整,这意味着:并非所有视频/音频编解码器都适用于每种流媒体协议。.

信息: NVIDIA 编码器不再支持交错格式。请改用 Intel QuickSync。.

您的 URL 将显示所需 URL 格式的建议。点击“URL 信息”可查看更多示例,例如如何集成用户名/密码。PLAYDECK 不会使用“预览 URL”,它仅用于方便您在点击“预览”时打开网络浏览器。.


2. 使用参数和配置

此外,还可以针对您所选的协议和编解码器设置更多参数。这些参数可用于微调您的设置,例如将流设置为恒定比特率(CBR)或添加元数据。.

点击“参数”将打开一个编辑器,该编辑器仅显示您所选项的可用设置。任何与默认值不同的数值都会被高亮显示。.

“配置字符串”代表了您所选的所有协议/编解码器及其相应的参数。 配置字符串支持双向操作:您也可以将配置字符串复制并粘贴到文本框中,然后点击“从字符串更新”以应用这些值。这使您能够轻松地在不同流 ID 之间复制设置,或与其他用户共享。.


3. 配置示例

以下是针对不同用途的精选推荐配置。将其复制并粘贴到 PLAYDECK 中,然后点击“从字符串更新”。.


DVB 流 包含 CBR 和 GOP B 帧。无 PCR、PTS-DTS 或缓冲区不足错误

format='dvb' protocol='udp://' mpegts_start_pid='60' video::streamid='80' video::disable_sps_pps='true' video::codec='n264' video::profile='high' video::level='4.1' video::rc_type='cbr' muxrate='10M' video::b='7.5M' video::bufsize='1.25M' video::g='32' video::bf='2' video::ref_frames='3' audio::streamid='81' audio::metadata::language='deu' audio::codec='mp2' audio::b='192k' pmt_start_pid='100' mpegts_flags='-system_b' rc_buffers='4' pcr_period='35' pat_period='0.1' sdt_period='0.5' tdt_period='10' start_pcr='0' service_name='TEST' service_provider='PD' service_id='1' original_network_id='1' transport_stream_id='201' service_type='advanced_codec_digital_hdtv'


或简写形式:

format='dvb' protocol='udp://' video::disable_sps_pps='true' video::codec='n264' video::profile='high' video::level='4.1' video::rc_type='cbr' muxrate='10M' video::b='7.5M' video::bufsize='1.25M' video::g='32' video::bf='2' video::ref_frames='3' audio::metadata::language='deu' audio::codec='mp2' audio::b='192k' service_type='advanced_codec_digital_hdtv'


信息: 每台DVB接收器都有所不同,您可能需要设置不同的参数。有些接收器不允许有任何偏差, 官方指南, ,屏幕上将显示黑色。编码DVB信号最可靠的解决方案是硬件编码器,例如:. 海视.

检测 DVB 流中 PCR 错误或其他问题的最佳做法是使用以下工具之一:
DVBControl DVBAnalyzer (价格约2000欧元,但最为可靠,且能检测PTS-DTS错误)
StreamGURU (价格约300欧元,可检测任何ETR错误并显示比特率曲线)
TSAnalyzer (免费,但支持导入流媒体URL,需在硬盘上存有TS文件)
– 其他值得一提的工具:DVBInspector、Elecard Stream Analyzer、StreamXpert

————————————————————

SRT 流 以CBR格式,25帧/秒,高品质音频

以下示例被多家客户应用于多通道流媒体配置中,用于播放音乐视频内容。该配置在4个并行输出+流媒体通道下运行流畅,通过FHD ACC音频实现了最佳的音质和画质。.

format='mpegts' protocol='srt://' video::codec='n264' video::b='4M' video::rc_type='cbr' video::preset='p4' audio::codec='aac' audio::b='128K' audio::profile='aac_low' audio::stereo_mode='ms_force' audio::minrate='128K' audio::maxrate='128K' audio::bufsize='128K' audio::aac_coder='0'

————————————————————

RTMP 流 以CBR编码,60帧/秒,每2秒设置一个关键帧

下一个示例适用于 YouTube。请使用 YouTube 分析和直播健康工具来测试您的直播稳定性:

format='flv' protocol='rtmp://' video::codec='n264' video::b='9000k' video::maxrate='9000k' video::bufsize='9000k' video::g='120' video::preset='veryfast' audio::codec='aac' audio::b='128k' audio::ar='44100'


下一个示例适用于 Twitch。请使用 Twitch 检查器 要检查您的直播稳定性,请在直播链接中添加“?bandwidthtest=true”,以防止意外开播。.

格式='flv' 协议='rtmp://' merge_tracks='true' video::codec='n264' video::b='5800k' video::maxrate='5800k' video::bufsize='5800k' video::g='120' 视频::预设='veryfast' 音频::编解码器='aac' 音频::比特率='128k' 视频::调谐='zerolatency' 音频::编解码器='aac' 音频::采样率='44100' 音频::比特率='128k'


————————————————————

索尼 XDCAM HD422 标准

视频参数——包括4:2:2色度采样、特定的GOP结构(M=3,N=15)以及隔行场处理——以及采样率为48 kHz的专业级24位PCM音频。.

format='mxf' video::codec='mpeg2video' video::b='50M' video::interlace='1' video::top='1' video::g='15' video::v422='true' video::bf='2' video::flags='+ildct+ilme' audio::codec='pcm_s24le' audio::ar='48000'


4. AAC 高质量音频流

默认的 AAC 流媒体设置可节省 CPU 资源,但在音乐频道上听起来可能会有些单薄。若要获得纯净的音质,请根据您的目标受众和音源素材,从以下两种配置文件中选择一种。.

快速准备:
来源: 请使用 48 kHz 的音频片段(320 kbps 或无损 PCM)。.
视频: 如果带宽较低,请将视频分辨率降至720p30。请始终使用硬件编码。.


选项 1:最大兼容性与稳定性(安全方案)

最适合: 标准流媒体、有线电视运营商和DVB-T复用器。这是防止不同类型内容出现时序问题的最稳妥方案。.

format='mpegts' protocol='udp://' video::codec='n264' video::b='4M' audio::codec='aac' audio::b='256K' audio::profile='aac_low' audio::aac_coder='0'


audio::profile=’aac_low’: 将 AAC-LC 设置为最高质量,并兼容 100% 硬件解码器。.
audio::aac_coder=’0': 强制进行高质量的双循环编码,以获得清晰的瞬态响应。(如果遇到CPU负载骤升,请将其改为1)。.
动态立体声: 将立体声管理交由编码器处理,使其能够很好地应对源素材质量不佳的情况。.


选项 2:高保真流媒体(优化版立体声)

最适合: 专为音乐打造的频道,采用纯净的录音室级原始音源文件。该配置文件采用严格的VBR包络控制,并强制应用Mid/Side立体声处理。.

format='mpegts' protocol='udp://' video::codec='n264' video::b='4M' audio::codec='aac' audio::b='256K' audio::profile='aac_low' audio::stereo_mode='ms_force' audio::minrate='200K' audio::maxrate='320K' audio::bufsize='640K' audio::aac_coder='0'


audio::stereo_mode=’ms_force’: 采用中/侧立体声处理技术,最大限度地提高带宽效率,营造深邃、宽广的立体声场。.
minrate=’200K’ / maxrate=’320K’ / bufsize=’640K’: 紧凑的VBR包络,既能防止安静段落中的音质下降,又能为强烈的音乐峰值预留空间。.
注: 如果某些音频片段缺乏“力度”或听起来空洞,请切换回方案1,因为您的源素材可能存在相位不一致的问题。.


5. 色彩空间、色度抽样与交错扫描

对某些色彩空间的支持(例如 DVB 的 4:2:2 或交错编码)在很大程度上取决于您所使用的英特尔 CPU 或英伟达 GPU。.

以下是关于 英伟达 NVenc 以及 422 支持,点击此处 英特尔快速同步 以及 422 支持。.

简而言之:

1. NVIDIA 对隔行编码的支持:
– Pascal(GTX 10系列):最后一款支持交错扫描的架构
– Turing / Ampere / Ada (RTX 20/30/40):移除了对交错编码的硬件支持
– Blackwell(RTX 50系列):已重新引入H.264(8位和10位)的交错编码

2. NVIDIA 对 4:2:2 色彩空间的支持:
– Blackwell(RTX 50系列)

3. 英特尔对 4:2:2 色彩空间的支持
– 第10代及更新款处理器支持通过Quick Sync对HEVC编解码器进行4:2:2色采样下的硬件加速编码和解码。.
– 第9代及更早版本的英特尔® 酷睿™ 处理器所搭载的图形控制器,在硬件加速编码和解码方面,仅支持HEVC编解码器的4:2:0色彩采样。.

这是一个使用英特尔快速同步(第10代及以上)进行4:2:2编码的快速配置示例

format='dvb' protocol='udp://' video::codec='hevc_qsv' video::b='5M' audio::codec='aac' audio::b='128K' video::pix_fmt='yuyv422'


注: x264 CPU 编码器也支持交错扫描和 4:2:2 色彩空间等功能。 由于我们使用的是不含 GPL 组件(例如 libx264)的 LGPL 版本 FFmpeg,因此这些功能未被启用。您可以将 FFmpeg 库替换为您自己的版本。.


6. 多音轨

如果您需要发送多个音频轨道(例如用于不同语言或导演音频),可以通过所有受支持的协议(DVB、RTMP、UDP 等)实现。您还可以应用不同的音频编解码器。.

具体操作方法是:先确保频道中所有音频轨道均已启用,然后将用于直播输出的音频轨道拆分为立体声对等形式。.

首先,请确保您的声道设置为超过 2 个音频声道:

然后“填充”这些音频通道,例如通过在片段上启用“所有音频轨道”,或通过 SDI 导入所有轨道(最多 16 条音频轨道)。 您还可以使用音频映射功能对音频轨道进行混音(上/下混音),或使用音频滤波器复制并延迟特定音频轨道。.

然后打开直播设置,特别是直播协议的参数,并启用音频轨道拆分:

信息: “流设置”中的“音频通道数”必须保持为 2。.

如有需要,您可以为新增的音频轨道应用不同的音频编解码器。请注意,除第一个音频轨道外,其余每个音频轨道的编号都会递增:

audio::codec='aac' audio.1::codec='ac3' audio.2::codec='libmp3lame' audio.3::codec='mp2'


您还可以为每条音频轨道应用语言描述符:

audio::metadata::language='eng' audio.1::metadata::language='ita' audio.2::metadata::language='fra' audio.3::metadata::language='ger'


信息: 语言代码必须符合 ISO 639-2

然后,您可以在 StreamGURU 等工具中测试生成的音频轨道:


7. 隐藏式字幕与SCTE

这两项功能均可在协议的“参数设置”中启用:

信息: SCTE-35 仅适用于以下协议:SRT、DVB、UDP(任何视频编解码器)。. 字幕功能仅支持以下视频编解码器:MPEG-2、H.264(任何协议)

这需要您的频道中已启用并提供这两项功能。有关 SCTE 和/或隐藏式字幕的更多信息,请参阅以下文章:

将 SCTE-35 发送至流媒体服务器
隐藏式字幕 / 字幕


8. 将数据流路由到特定 IP 地址

您的制作需要通过特定网络发送流媒体数据。这主要是为了为流媒体传输提供一条专用/预留的线路,从而避免干扰常规网络流量。.

如果使用 UDP 流 您只需将此参数直接添加到 URL 中:
udp://ip:port?localaddr=172.20.10.2

如果使用 SRT 流 您只需将此参数直接添加到 URL 中。此方法仅适用于 会合模式:
srt://ip:port?mode=rendezvous&localip=172.20.10.2

如果使用 RTMP 流,很遗憾目前没有相应的参数。您需要手动路由所有 RTMP 出站流量。为此,我们使用 Proxifier. 进入“配置文件”→“代理规则”,点击“添加新规则”并按此方式进行编辑,然后将其移至规则列表的顶部。通过“高级”选项选择所需的适配器。.


如果你想在本地进行一次不连接第二条线路的干测,请在电脑上同时启用以太网适配器和Wi-Fi,然后在手机上创建一个新的热点,并将电脑的Wi-Fi连接到该手机。接着打开命令提示符(“cmd”),输入“ipconfig”。你需要的IP地址就在那里:

您可以使用以下方式测试您的网络流量: Wireshark.


9. 监控与故障排除

如果您的流媒体播放出现卡顿甚至完全停止,您往往不清楚究竟发生了什么。以下是一些提示,可帮助您找出问题所在。.

1. 比特率

请遵循以下规则:视频和音频比特率设置(针对您的直播流)绝不能超过片段的编码比特率。请右键单击播放列表中的片段并打开 MediaInfo 进行检查。在此情况下,请将视频比特率设置为 3M,音频比特率设置为 128K。.


2. 监测

在 PLAYDECK 中打开“监视器”窗口,或打开流日志。.

帧率 50/60 (平均帧率/目标帧率)
将当前和平均编码帧率与目标值进行比较。若数值下降,则表明系统无法跟上实时编码的进度。.

已过去 (帧等待时间,单位:秒)
显示自上一个帧处理完成以来经过的时间。如果该值增加,则可能是由于源文件缺失、设置错误或未连接,导致无法处理帧。.

跳过 (丢帧)
这是判断性能瓶颈的最关键指标。如果该数值上升,说明编码器因无法及时处理帧数据,而故意丢弃了这些帧。.

分隔符 (丢失的帧)
如果网络速度慢,你会看到“中断”提示,因为服务器 想要 一个新的帧,但它无法及时到达(对于需要确认的协议,如RTMP或SRT)。如果源端未能及时发送帧,也会导致中断。.

缓冲区 (正在加载帧)
监控内部队列中等待的帧数。缓冲区持续增长通常预示着将出现跳帧或中断。. 高处跳过,低处折断: 这通常意味着你的 CPU/GPU 编码器 太慢了。. 高点跳过,低点/零点跳过: 这通常意味着 网络或来源 是瓶颈所在。写入端已准备好进行编码,但由于连接延迟,帧未能按时到达或被“拉取”。.


3. 网络/带宽问题

关闭所有正在运行的程序,打开 Windows 命令提示符(在“开始”菜单中搜索“cmd”),然后输入

tracert


请使用目标 URL 的主机名或 IP 地址。如果看到任何数值大于 100 毫秒,则表明与流媒体目标的连接速度较慢。.

另外请注意,虽然如今光纤、有线或DSL的下载速度大多很高(>100 Mbps),但上传速度可能要慢得多。请使用如下工具: 网速测试 以确定您的实际上传速度。.

此外,请在流媒体服务器上使用带宽分析工具,以确认服务器端是否也接收到了您设定的比特率。大多数服务商或软件都会提供用于测量接收比特率的工具。理想情况下,这些数据会以图表形式呈现,从而能指出传输过程中的任何断点。 如果您手头没有相关工具,我们建议将流媒体传输至 YouTube,因为它内置了流媒体分析器,对于诊断任何不稳定的连接非常有用。.

此外,请向您的服务提供商或服务平台确认,他们是否为您的地区或国家/地区提供了本地流媒体采集网址。例如,Twitch 便提供了此类网址 Twitch 内容上传接口.