vlc 无法播放 mkv 和 mp4 格式

vlc 无法播放 mkv 和 mp4 格式

已安装甚高频(VLC 版本 2.2.2 Weatherwax)来自 16.04 LTS 官方仓库。我有ubuntu 受限附加功能. 视频播放图腾(3.18.1)但是如果我尝试运行vlc -vvv 文件名 它崩溃了分段错误(核心转储)AVI文件在两个播放器上都可以正常播放。

下面是我以前使用过的 vlc 版本和 Ubuntu 14.04 LTS 的设置截图。当时它运行良好。我尝试更改输出类型,但没有帮助。

在此处输入图片描述

答案1

我遇到这个问题是因为 VLC 尝试使用 VDAPU 进行视频解码,这导致了分段错误。据推测这实际上是开源 Radeon 驱动程序中的一个错误,但我可以通过禁用硬件视频解码来解决这个问题。设置有点隐蔽,只需打开 VLC,然后转到工具->首选项->输入/编解码器并将硬件加速解码设置为禁用。

如果这不能解决您的特定问题,我可以通过执行以下步骤查明这是 VDAPU 的问题:

  1. ulimit -c unlimited 让 Ubuntu 真正创建核心转储
  2. vlc从同一终端
  3. 等待段错误
  4. gdb `which vlc`
  5. core core加载实际调用的核心文件core
  6. bt这给了我以下输出:

    #0  0x00007fe128b4118e in llvm::SmallVectorTemplateBase<llvm::cl::parser<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::OptionInfo, false>::grow(unsigned long) () from /usr/lib/x86_64-linux-gnu/libLLVM-4.0.so.1
    #1  0x00007fe128b4125e in ?? () from /usr/lib/x86_64-linux-gnu/libLLVM-4.0.so.1
    #2  0x00007fe1067fab0a in ?? () from /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
    #3  0x00007fe16555b4ea in call_init (l=<optimized out>, argc=argc@entry=2, 
        argv=argv@entry=0x7ffecd92f6b8, env=env@entry=0x7fe138050690)
        at dl-init.c:72
    #4  0x00007fe16555b5fb in call_init (env=0x7fe138050690, argv=0x7ffecd92f6b8, 
        argc=2, l=<optimized out>) at dl-init.c:30
    #5  _dl_init (main_map=main_map@entry=0x7fe10c0172c0, argc=2, 
        argv=0x7ffecd92f6b8, env=0x7fe138050690) at dl-init.c:120
    #6  0x00007fe165560712 in dl_open_worker (a=a@entry=0x7fe121f082c0)
        at dl-open.c:575
    #7  0x00007fe16555b394 in _dl_catch_error (
        objname=objname@entry=0x7fe121f082b0, 
        errstring=errstring@entry=0x7fe121f082b8, 
        mallocedp=mallocedp@entry=0x7fe121f082af, 
        operate=operate@entry=0x7fe165560300 <dl_open_worker>, 
        args=args@entry=0x7fe121f082c0) at dl-error.c:187
    #8  0x00007fe16555fbd9 in _dl_open (
        file=0x7fe121f08540 "${ORIGIN}/vdpau/libvdpau_radeonsi.so.1", 
        mode=-2147483390, caller_dlopen=0x7fe1095a46cc, nsid=-2, 
    ---Type <return> to continue, or q <return> to quit---
    

第 8 行的条目告诉我问题出在 Radeon 驱动程序上。

相关内容