我无法在vlc中使用--sout-all与mp4文件一起工作

时间:2013-08-07 18:39:07

标签: vlc libvlc

我正在尝试使用LibVLC和--sout-all选项流式传输包含2个音轨的视频。 我知道电影中有两个音轨,但我似乎无法正确选择,所以Vlc只流一个。

(vlc版本2.0.5 / 2.0.8 ubuntu 12.0.4关于一个不太快的intel atom nettop)

def change_media(instance, player, video_port, item, multicast_address, video_offset=0.0):
    """
    Change video
    """
    param=[
        "%s" % item
        ,"start-time=%d" % video_offset
        ,"sout-all"
        ,"sout-udp-ttl=1"
        ,"ttl=1"
        ,"sout=#standard{access=udp,dst=%s:%d,mux=ts{pid-video=68,pid-audio=70}}"%(
                multicast_address,
                video_port
            )
        ]
    media = instance.media_new(*param)
    player.set_media(media)

从命令行尝试时,我似乎没有更好地使用--sout-all选项。

vlc -vvv land.mp4 --sout-all --sout=#standard{access=udp,dst=224.1.1.1:5555,mux=ts{pid-video=68,pid-audio=70}}

以下是日志中的一些行 - 我希望它足够了 - 请参阅(禁用)

[0x853c498] mp4 demux debug: adding track[Id 0x1] video (enable) language undef
[0x853c498] mp4 demux debug: track[Id 0x2] read 26658 chunk
[0x853c498] mp4 demux debug: track[Id 0x2] read 213263 samples length:4549s
[0x853c498] mp4 demux debug: adding track[Id 0x2] audio (enable) language eng
[0x853c498] mp4 demux debug: track[Id 0x3] read 26658 chunk
[0x853c498] mp4 demux debug: track[Id 0x3] read 213263 samples length:4549s
[0x853c498] mp4 demux debug: adding track[Id 0x3] audio (disable) language fra

这只显示两条曲目:

[0x85494b8] main stream output debug: adding a new sout input (sout_input:0xb5003c70)
[0x853de98] main mux debug: adding a new input
[0x853de98] mux_ts mux debug: adding input codec=h264 pid=68
[0x853de98] mux_ts mux debug: new PCR PID is 68
[0x85494b8] main stream output debug: adding a new sout input (sout_input:0xb042f630)
[0x853de98] main mux debug: adding a new input
[0x853de98] mux_ts mux debug: adding input codec=mp4a pid=70
[0x853de98] mux_ts mux debug:     - lang=eng

1 个答案:

答案 0 :(得分:0)

虽然从狭义上说这不是严格意义上的答案,但这是我找到的解决方法。

正如我之前所说,我确信这部电影有2个音轨,而在播放时则禁用了一个。

我之前曾成功播放过另一部电影,但有什么区别?一个人被手刹扯掉了,另一个人经过了ffmpeg。

我决定通过ffmpeg运行handbrake-ripped文件,看它是否有所作为:

ffmpeg.exe -i land.mp4 -map 0:0 -map 0:1 -map 0:2 land2.mp4

就是这样 - 现在流媒体视频和2个音轨确实是可能的。

虽然我无法确定这两个程序中是否存在错误(或使用错误),但这应该有助于其他人在同样的情况下发现自己。