Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> ซอฟต์แวร์

แก้ VLC บน Linux: เล่นไฟล์ระยะไกลผ่าน Samba Sharing

ปัญหาที่คุณเผชิญคือ คุณน่าจะใช้ Linux ดิสโทรบางตัว และต้องการเล่นไฟล์ที่เก็บอยู่บนคอมพิวเตอร์ระยะไกล มักจะเป็นเครื่อง Windows จึงต้องใช้ Samba sharing ปัญหาคือ sharing เองทำงานได้ แต VLC เล่นไฟล์ระยะไกลไม่ได้

คุณจะเจอข้อผิดพลาด: Your input can't be opened: VLC is unable to open the MRL 'specific protocol and file location'. Check the log for details. ในกรณีของผมเป็นกับ Samba ดังนั้นโปรโตคอลคือ smb:// และตามด้วยพาธเต็มไปยังไฟล์สื่อที่ต้องการ ผมเคยเจอปัญหานี้หลายครั้ง แต่น่าสนใจคราวนี้เจอใน GeckoLinux (ดิสโทร based on openSUSE) และ openSUSE เอง และระบบ KDE/Plasma อื่นๆ อีกมาก จึงตัดสินใจเขียนบทช่วยสอนเล็กๆ แสดงวิธีแก้ปัญหานี้

รายละเอียดรอบๆ ปัญหา

ตอนนี้ บ่อยครั้งกับปัญหาแบบนี้ สาเหตุอาจซับซ้อนและซ่อนเร้น คุณมีโค덱ถูกต้องไหม? มีการขัดแย้งซอฟต์แวร์ไหม? หากอ่านคู่มือปรับแต่ง openSUSE ของผม คุณจะสังเกตว่าใช้หลายที่เก็บ (repos) อาจนำไปสู่ปัญหา

ในจุดนี้ คุณอาจตัดสินใจพยายามติดตั้ง dependency ที่หายไปบ้าง เนื่องจากอาจคิดว่าระบบขาดโค덱ที่ต้องการเปิดไฟล์ แต่ควรดูล็อกก่อน ในลักษณะที่ดี ควรให้รายละเอียดมากขึ้นว่าคุณเผชิญอะไร เราพูดถึงเรื่องนี้ไปแล้วในบทความ VLC secrets และ logging

พูดถึงโค덥 ใน SUSE family โค덥ถูกแพ็กเกจแยก (vlc-codecs) ไม่ว่าจะเป็นดิสโทรไหน โดยเฉพาะสำหรับ Samba คุณอาจลอง vlc-plugin-samba หากมี

แตตอนนี้ มาโฟกัสที่ล็อก ตรวจสอบ Tools > Messages เพิ่มระดับ verbosity เป็น debug แล้วลองเปิดไฟล์จาก Samba share ค้นหาข้อผิดพลาดในเอาต์พุท คุณน่าจะเจอประมาณนี้:

...
smb error: open failed for 'roger@mediabox/Data/File.mp4' (Permission denied)
...

นี่หมายความว่าเราเข้าถึงไฟล์ไม่ได้จากภายใน VLC โปรดตรวจสอบว่าคุณทำได้จริงไหมผ่านไฟล์เมเนเจอร์ของดิสโทร หากทำได้ แสดงว่านี่เป็นปัญหาเรื่องการยืนยันตัวตนของ VLC กับเซิร์ฟเวอร์ที่เก็บไฟล์ เราจะแก้การเข้าถึง Samba shares ตอนนี้ วิธีเดียวกันใช้ได้กับโปรโตคอลอื่นๆ

วิธีแก้

สิ่งที่เราต้องทำคือ บอก VLC ให้เล่นเนื้อหา SMB — และอาจต้องให้ข้อมูลประจำตัวที่จำเป็นสำหรับการเข้าถึง Samba shares ปัญหาที่นี่หลายมิติ ไม่กี่วันมา หลังจากพบช่องโหว่ความปลอดภัยหลายอย่างในโปรโตคอล SMB มีการตอบสนองแบบ kneejerk และการเข้มงวดด้านความปลอดภัยในโดเมนนี้ ซึ่งทำให้ดิสโทรพรอมพ์ขอ username และ password สำหรับ Samba shares แม้คุณจะอนุญาต guest access แบบไม่ระบุชื่อ

เพิ่มเติม VLC อาจไม่ได้ผสานรวมกับดิสโทรที่คุณเลือกอย่างเต็มที่ และอาจไม่มีการแชร์ข้อมูลประจำตัวข้ามแอปเพียงพอ หมายความว่าหากคุณอนุญาต Dolphin เข้าถึง Samba shares ข้อมูลนี้จะไม่ถูกเก็บในฐานข้อมูลกลางที่โปรแกรมเล่นสื่อใช้ได้ เราต้องกำหนดค่าแยกต่างหาก

ทำได้โดย เปิด VLC > Preferences > Show settings (All) > Input / Codecs > Access Modules > SMB ที่นี่ คุณจะระบุ SMB username, password และ domain ได้ (ทำงานกับเซิร์ฟเวอร์เดียวในเวลาเดียว)

หลังระบุรายละเอียดที่จำเป็น บันทึกการตั้งค่า และปิดหน้าต่าง Preferences ตอนนี้ ลองเล่นเนื้อหาระยะไกล คุณน่าจะสำเร็จ ณ จุดนี้ คุณควรสตรีมวิดีโอจากเครื่อง Windows ได้ อาจไม่มีผลกับทุกดิสโทร — หรือเดสก์ท็อปเอนไวรอนเมนต์ จึงควรคำนึงถึงเมื่อตั้งค่าระบบ

สรุป

นี่คือบทช่วยสอน VLC อีกอันที่รวดเร็วและคล่องตัว โปรแกรมเล่นเล็กๆ นี้มีทุกอย่าง รวมถึงความซับซ้อน ความสวยงาม และความยืดหยุ่นของโลก Linux คุณรู้ว่าปัญหาจะมา แตคุณก็จะแก้ได้ ไว้ที่ไหน ไว้ที่นั่น black magic

หากคุณเล่นไฟล์สื่อระยะไกลด้วย VLC ใน Linux ไม่ได้ ต้องตรวจสอบหลายอย่าง หนึ่ง ตรวจสอบล็อกโปรแกรมเล่นสื่อก่อนเสมอ เพื่อ narrow down การ troubleshoot จากข้อมูล ให้ดูว่าคุณไม่ได้เจอปัญหา permission สิ่งนี้เกิดได้ในดิสโทรและเดสก์ท็อปเอนไวรอนเมนต์ต่างๆ โดยเฉพาะกับ Samba หากไม่ช่วย ให้ดูเรื่องโค덥ที่หายไป และให้แน่ใจว่าไม่ได้เจอ package conflicts หรืออย่างนั้น แตในกรณีนี้ น่าจะเป็นเรื่อง Samba credentials และโปรแกรมเล่นอนุญาตให้คุณแก้ได้ง่ายผ่าน Preferences แต่จะมีข้อจำกัดบางอย่าง อย่างไรก็ตาม ไม่สมบูรณ์แบบ แต่ด้วยสิ่งที่เราทำได้ หวังว่าคุณจะพบว่าคู่มือนี้มีประโยชน์ และเรา represent

ขอแสดงความนับถือ