16.04 LTS公式リポジトリからvlc(VLCバージョン2.2.2 Weatherwax)をインストールしました。私はubuntu-restricted-extrasを持っています。ビデオはtotem(3.18.1)で再生されますが、vlc -vvv file_nameSegmentation fault(core dumped)でクラッシュします。 aviファイルは両方のプレーヤーで正常に再生されます。
以前のバージョンのvlcおよびUbuntu 14.04 LTSで使用していた設定のスクリーンショットの下。その後、正常に動作しました。出力タイプを変更しようとしましたが、役に立ちません。
VLCがビデオのデコードにVDAPUを使用しようとしており、セグメンテーションエラーが発生していたため、この問題に遭遇しました。おそらくこれは実際にはオープンソースのRadeonドライバーのバグですが、ハードウェアビデオデコードを無効にするだけでこれを回避できました。設定は一種の埋没です。VLCを開き、[ツール]-> [設定]-> [入力/コーデック]に移動し、[ハードウェアアクセラレーションによるデコード]を[無効]に設定します。
これで特定の問題が解決しない場合は、次の手順を実行することで、VDAPUの問題であることがわかりました。
ulimit -c unlimited
はUbuntuに実際にコアダンプを作成させるvlc
同じ端末からgdb `which vlc`
core core
実際に呼び出されるコアファイルをロードしますcore
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ドライバーにあることがわかりました。