问题描述
我要求将dvb-t提要进入系统,然后能够在点网核心环境中以rtsp流的形式通过本地网络推送频道。
LibVLCSharp看起来很合适,但是我为确定每个通道的PID值而陷入困境,因此我可以有选择地分配各个通道。
我发现,如果我播放媒体元素,我可以从LibVLC日志中获取包含PID和通道名称的EPG信息,但是这样做似乎有点麻烦。
我知道在VLC UI中您可以从 Playback-> Programs 中选择单个频道,所以我觉得我缺少一些东西。
解决方法
TS muxer (libdvbpsi) (mux_ts)
--sout-ts-standard={dvb,atsc}
Digital TV Standard
--sout-ts-pid-video=<integer [32 .. 8190]>
Video PID
Assign a fixed PID to the video stream. The PCR PID will
automatically be the video.
--sout-ts-pid-audio=<integer [32 .. 8190]>
Audio PID
Assign a fixed PID to the audio stream.
--sout-ts-pid-spu=<integer [32 .. 8190]>
SPU PID
Assign a fixed PID to the SPU.
--sout-ts-pid-pmt=<integer [32 .. 8190]>
PMT PID
Assign a fixed PID to the PMT
--sout-ts-tsid=<integer> TS ID
Assign a fixed Transport Stream ID.
--sout-ts-netid=<integer> NET ID
Assign a fixed Network ID (for SDT table)
--sout-ts-program-pmt=<string>
PMT Program numbers
Assign a program number to each PMT. This requires "Set PID to ID of
ES" to be enabled.
--sout-ts-es-id-pid,--no-sout-ts-es-id-pid
Set PID to ID of ES
(default disabled)
Sets PID to the ID if the incoming ES. This is for use with
--ts-es-id-pid,and allows having the same PIDs in the input and
output streams.
--sout-ts-muxpmt=<string> Mux PMT (requires --sout-ts-es-id-pid)
Define the pids to add to each pmt. This requires "Set PID to ID of
ES" to be enabled.
--sout-ts-sdtdesc=<string> SDT Descriptors (requires --sout-ts-es-id-pid)
Defines the descriptors of each SDT. This requires "Set PID to ID of
ES" to be enabled.
也许这会有所帮助,但从未尝试过要实现的目标,所以我不确定。您可以使用libvlcsharp options
中的任何https://code.videolan.org/videolan/LibVLCSharp/-/blob/3.x/docs/libvlc_documentation.md#libvlc-options