RTSP 音频流播放速度与 vlcj
RTSP audio stream playback speed with vlcj
是否有任何方法或可能的解决方法来设置 vlcj 中 RTSP 音频流的播放速度?我遇到了 libvlc 只能处理流上 2x、3x、4x 速率的问题,我找不到解决方案。
我的流提供者是 live555 媒体服务器,它通过来自 k8s pod 的 tcp 支持多个客户端。其他媒体播放器,如 smplayer 可以在更快和更慢的范围内以不同的速度正确播放我的流。
对于播放速度,LibVLC API 中唯一可用的选项是:
libvlc_media_player_set_rate(mp, rate);
这在vlcj中是这样暴露的:
mediaPlayer.controls().setRate(rate);
你可以使用分数值,所以 0.5 是半速,1.25、1.5 等应该都可以。
这通常适用于媒体播放,但我不知道这是否适用于您使用 live555 的 RTSP 的特定情况 - 它要么有效,要么无效,别无选择。
我发现罪魁祸首实际上是媒体服务器。貌似只支持全值率设置(2x, 3x ...32x).
“工作”播放器误导了他们,因为他们在客户端处理速度,这就是他们可以工作的原因。但您可能会说,这种方法对性能有很大影响。
通过使用wireshark,可以清楚地看到vlc试图发送Scale
头中的速率值来请求服务器进行faster/slower播放,但是它以一个四舍五入的设置响应(如果发送了 1,5,则它会回答 2)。所以我认为 libvlc 不支持它的假设是错误的。
其他玩家不会将速率设置传达给服务器。
是否有任何方法或可能的解决方法来设置 vlcj 中 RTSP 音频流的播放速度?我遇到了 libvlc 只能处理流上 2x、3x、4x 速率的问题,我找不到解决方案。
我的流提供者是 live555 媒体服务器,它通过来自 k8s pod 的 tcp 支持多个客户端。其他媒体播放器,如 smplayer 可以在更快和更慢的范围内以不同的速度正确播放我的流。
对于播放速度,LibVLC API 中唯一可用的选项是:
libvlc_media_player_set_rate(mp, rate);
这在vlcj中是这样暴露的:
mediaPlayer.controls().setRate(rate);
你可以使用分数值,所以 0.5 是半速,1.25、1.5 等应该都可以。
这通常适用于媒体播放,但我不知道这是否适用于您使用 live555 的 RTSP 的特定情况 - 它要么有效,要么无效,别无选择。
我发现罪魁祸首实际上是媒体服务器。貌似只支持全值率设置(2x, 3x ...32x).
“工作”播放器误导了他们,因为他们在客户端处理速度,这就是他们可以工作的原因。但您可能会说,这种方法对性能有很大影响。
通过使用wireshark,可以清楚地看到vlc试图发送Scale
头中的速率值来请求服务器进行faster/slower播放,但是它以一个四舍五入的设置响应(如果发送了 1,5,则它会回答 2)。所以我认为 libvlc 不支持它的假设是错误的。
其他玩家不会将速率设置传达给服务器。