【问题标题】:How to add additional audio track to video player with libvlc如何使用 libvlc 向视频播放器添加额外的音轨
【发布时间】:2020-07-15 19:20:54
【问题描述】:

我正在寻找通过 python3.8 使用 vlc 播放器播放视频。我可以播放电影 (mp4),但我想添加额外的音轨。我读到“添加奴隶”方法是(新)方法,但我无法正确使用它:我无法添加字幕或音轨。

总结一下:我想用 Python 实现的大致如下: https://wiki.videolan.org/VLC_HowTo/Play_an_external_audio_track_for_a_video

我当前的(非工作)sn-p:

import vlc

base_path = r"Z:/test/libvlc/"
video_file = base_path + "original.mp4"
audio_file = base_path + "2xlcDLHY7k0-instru+vocal_stereo.wav"
sub_file = base_path + "word.ass"

Instance = vlc.Instance()
player = Instance.media_player_new()
Media = Instance.media_new(video_file)
AdditionalTrack = player.add_slave(player, audio_file, True, i_type="audio")
Sub = player.add_slave(player,sub_file, True)
player.set_media(Media)

while True:
    player.play()

我在这里找到了 'add_slave' 函数的文档: https://www.olivieraubert.net/vlc/python-ctypes/doc/ 但我无法正常使用它

libvlc_media_slaves_add(p_md, i_type, i_priority, psz_uri) 为当前媒体添加一个从站。从属设备是一个外部输入源,可能包含额外的字幕轨道(如 .srt)或额外的音轨(如 .ac3)。 参数: p_md - 媒体描述符对象。 i_type - 字幕或音频。 i_priority - 从 0(低优先级)到 4(高优先级)。 psz_uri - 从站的 Uri(应包含有效的方案)。

如果有人知道如何添加字幕或附加音轨, 如果他能告诉我如何做,我将不胜感激,

非常感谢!

【问题讨论】:

  • 回溯(最近一次通话最后):文件“Z:/midge_play_karaoke-v010.py”,第 11 行,在 AdditionalTrack = player.add_slave(player, audio_file, True, i_type=" audio") TypeError: add_slave() 为参数 'i_type' 获取了多个值
  • 我正在使用:libvlc v3.0.9113

标签: python audio vlc


【解决方案1】:

改用此代码。

AdditionalTrack = player.add_slave(player, audio_file, True, i_type=vlc.MediaSlaveType(1))

i-type 参数不是字符串类型。

【讨论】:

    猜你喜欢
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多