OSX: การใช้ VLC เวอร์ชัน CLI


22

ฉันจะใช้ VLC เวอร์ชัน CLI บน OSX ได้อย่างไร

หลังจากติดตั้ง VLC บน OSX ก็ใช้งานได้ดีผ่านกระบวนการ GUI ปกติสปอตไลท์ ฯลฯ นอกจากนี้ฉันรู้ว่าเป็นไปได้ที่จะทำ

open bla.avi -a vlc

อย่างไรก็ตามเมื่อฉันออกvlcคำสั่งในเปลือกมันไม่ทำงาน which vlcในเชลล์จะไม่ส่งคืนสิ่งใดเช่นกัน

VLC เวอร์ชัน CLI นั้นมีประโยชน์มากสำหรับการแปลงรหัส, การสตรีม ฯลฯ ดังนั้นจึงเป็นการดีที่จะให้มันทำงานได้


1
คำถามของคุณที่นี่อะไร คุณแค่มองหาคำสั่งหรือไม่ คุณลองทำอะไร
Baarn

ภายใต้ linux เมื่อฉันออกvlcใน terminal มันบอกให้ฉันใช้cvlcฉันคิดว่ามันจะเหมือนกันภายใต้ OSX
Baarn

ดังนั้นฉันสมมติว่าคุณดาวน์โหลด VLC ... มันควรส่งเครื่องมือบรรทัดคำสั่งที่จำเป็นกับโปรแกรม ... มันสามารถทำการแปลงรหัส, การสตรีม, "ฯลฯ " แต่คุณต้องจัดเตรียมกรณีการใช้งานเฉพาะสำหรับเรา เพื่อให้ข้อมูลรายละเอียดใด ๆ
allquixotic

โปรดอย่าเขียนมันใช้งานไม่ได้เพราะฉันค่อนข้างมั่นใจว่ามันใช้งานได้ดีไม่ใช่ในแบบที่คุณคาดหวัง ดังนั้นโปรดบอกสิ่งที่คุณต้องการและสิ่งที่คุณได้รับแทน
Baarn

3
@allquixotic น่าเสียดายที่ใน OS X, VLC ไม่ได้ติดตั้งเวอร์ชันบรรทัดคำสั่ง
slhck

คำตอบ:


23

คำสั่งใช้open bla.avi -a vlcงานได้เนื่องจาก OS X ใช้ฐานข้อมูล Launch Services เพื่อเปิดแอปพลิเคชัน VLC สิ่งนี้ไม่มีอะไรเกี่ยวข้องกับไบนารีบรรทัดคำสั่งที่มีชื่อเดียวกันซึ่งไม่ได้ติดตั้งโดยค่าเริ่มต้น

ไบนารีที่คุณค้นหาอยู่ในVLC.appแพ็คเกจดังนั้นคุณสามารถพิมพ์ลงในเทอร์มินัลได้:

/Applications/VLC.app/Contents/MacOS/VLC -I rc

นี่จะเป็นการเปิดบรรทัดคำสั่งแบบโต้ตอบ VLC หรือดำเนินการต่อไปนี้เพื่อให้มีการลงทะเบียนบรรทัดข้างต้นเป็นนามแฝงไปที่vlc:

echo "alias vlc='/Applications/VLC.app/Contents/MacOS/VLC -I rc'" >> ~/.bash_profile

เมื่อคุณเพิ่มสิ่งนี้แล้วคุณจะต้องเริ่ม Terminal ของคุณใหม่ ตอนนี้พิมพ์vlcและคุณจะได้รับบรรทัดคำสั่ง

ถ้าคุณไม่ชอบอินเตอร์เฟซแบบโต้ตอบหรือต้องการที่จะใช้VLCกับตัวเลือกอื่น ๆ ที่คุณต้องแก้ไขของคุณตามเช่นผ่าน~/.bash_profileopen -e ~/.bash_profile


1
ลบออก-I rcจากคำสั่งหากคุณต้องการให้ GUI เปิดผ่านคำสั่งบรรทัดคำสั่ง vlc
MikeiLL

4
@MikeiLL คุณสามารถโทรopen -a VLCได้ด้วย สิ่งนี้ใช้ได้กับแอพใด ๆ ใน OS X
slhck

ฉันชอบที่จะเรียกนามแฝงนี้cvlcเพื่อให้ชัดเจนว่ามันเป็นบรรทัดคำสั่ง VLC (และยังสอดคล้องกับรุ่น linux)
lenooh

3

แอปพลิเคชัน OS X มักจะไม่ติดตั้งโปรแกรมปฏิบัติการใด ๆ นอกชุดแอปพลิเคชัน ในขณะที่คุณมักจะไม่โต้ตอบกับพวกเขาจากบรรทัดคำสั่งพวกเขาไม่ได้ใส่ลงไปในโฟลเดอร์ใด ๆ PATHบน


หากคุณติดตั้ง VLC เพื่อการปฏิบัติการจริง/Applications/Applications/VLC.app/Contents/MacOS/VLC

/Applications/VLC.app/Contents/MacOS/VLC -hจะแสดงความช่วยเหลือและ/Applications/VLC.app/Contents/MacOS/VLC --intf ncursesจะเปิดตัว ncurses UI


--intf ncursesธงเป็นเย็น
CWD

2

หากต้องการเข้าถึงvlcจากบรรทัดคำสั่งคุณสามารถสร้างลิงก์สัญลักษณ์โลคัลดังต่อไปนี้:

mkdir ~/bin
ln -vs /Applications/VLC.app/Contents/MacOS/VLC ~/bin/vlc

หากต้องการให้คำสั่งนี้พร้อมใช้งานสำหรับผู้ใช้ทุกคนคุณอาจต้องการลิงก์ไปยังคำสั่ง/usr/local/binแทน

ตรวจสอบให้แน่ใจว่า~/bin(หรือ/usr/local/bin) ของคุณอยู่ในPATHตัวแปรสภาพแวดล้อมของคุณหรือกล่าวอีกนัยหนึ่งว่า~/.profileไฟล์ของคุณมีสิ่งที่ต้องการ

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

โค้ดด้านบนเป็นพฤติกรรมเริ่มต้นบน Linux


1

อินเทอร์เฟซดัมมี่ช่วยให้การดำเนินการแบทช์บนบรรทัดคำสั่ง ฉันใช้เชลล์สคริปต์เช่นนี้บันทึกไว้ใน / usr / local / bin / vlc:

    export VLC_PLUGIN_PATH=/Applications/VLC.app/Contents/MacOS/plugins
    /Applications/VLC.app/Contents/MacOS/VLC -I dummy "${@}"

1

FYI และ / หรือเคล็ดลับ

นี่คือ 2 วิธีในการค้นหาเส้นทางที่แท้จริงของแอพที่เรียกใช้งานด้วยopenคำสั่ง

มีประโยชน์ในกรณีที่ VLC วางอยู่ในไดเรกทอรีอื่นมากกว่า/Applicationsเช่น/Users/<user>/Applications( ~/Applications) หรือไดเรกทอรีอื่น ๆ

ผ่าน AppleScript

เรียบง่าย แต่เปิดตัวแอพ

$ osascript -e 'POSIX path of (path to application "VLC")'
/Applications/VLC.app/
$ 
$ osascript -e 'POSIX path of (path to application "GIMP")'
/Volumes/External_HDD/Applications/GIMP/GIMP_v2.8/GIMP.app/

ผ่านคำสั่ง lsregister

ซับซ้อนเล็กน้อย แต่จะไม่เปิดแอป

$ # Path of `lsregister` command
$ #   /System/Library \
$ #     /Frameworks/CoreServices.framework/Versions/A \
$ #     /Frameworks/LaunchServices.framework/Versions/A/Support/
$ 
$ cd /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/
$ 
$ ls
lsregister
$ 
$ # Sample usage
$ ./lsregister -dump | grep -o "/.*\Google Chrome.app" | head -1
/Applications/Google Chrome.app
$ 
$ # Find VLC
$ NAME_APP=VLC
$ ./lsregister -dump | grep -o "/.*${NAME_APP}.app" | grep -v -E "Caches|TimeMachine|Temporary|/Volumes/${NAME_APP}" | uniq
/Applications/VLC.app

ทดสอบกับ: macOS HighSierra (OSX 10.13.6)

$ bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)
Copyright (C) 2007 Free Software Foundation, Inc.

0

ขั้นแรกคุณจะต้องค้นหาตำแหน่งไบนารีที่ใช้งานได้จริงในแพ็คเกจแอปพลิเคชัน VLC Mac เปิดFinderไปที่Applicationsโฟลเดอร์คลิกขวาบนแอป VLC Show Package Contentsแล้วคลิก ตอนนี้คุณสามารถเรียกดูสิ่งที่อยู่ภายใน

ในกรณีนี้ไบนารี VLC ตั้งอยู่ในโฟลเดอร์ที่เป็นไฟล์Contents/MacOS VLCเปิดTerminalและเข้าสู่เส้นทางของไฟล์ที่แน่นอนในการนี้และคุณจะได้พบกับ VLC /Applications/VLC.app/Contents/MacOS/VLCรันไบนารี: หากคุณไม่ต้องการใช้เส้นทางทั้งหมดนี้ทุกครั้งคุณสามารถสร้าง symlink และแก้ไข Bash PATH ของคุณเพื่อชี้ไปที่สิ่งนี้

ตอนนี้คุณสามารถเรียกเลขฐานสองได้โดยตรงจาก CLI คุณอาจต้องการเลือกอินเทอร์เฟซเพื่อที่คุณจะไม่ได้มี GUI โผล่ขึ้นมา รายการเต็มรูปแบบของการเชื่อมต่อที่มีอยู่ที่หน้า VLC เชื่อมต่อวิกิพีเดีย

เมื่อคุณพบชุดคำสั่งที่ใช้งานได้สำหรับการโทร VLC CLI ของคุณซึ่งสร้างเอาต์พุตที่คุณตั้งใจไว้คุณอาจต้องการใช้dummyอินเตอร์เฟสเมื่อเรียก VLC ในการประมวลผลโปรแกรม / แบทช์ของคุณ dummyอินเตอร์เฟซที่เป็นพื้นอะไร แต่การส่งออกในเทอร์มิชอบมากที่สุดโปรแกรม CLI ไม่โต้ตอบ

ผลลัพธ์สุดท้าย: /Applications/VLC.app/Contents/MacOS/VLC -I dummy [further parameters here]

ฉันขอแนะนำให้ใช้-vvvพารามิเตอร์เพื่อให้คุณได้รับผลการบันทึกอย่างละเอียดเพื่อช่วยในการทดสอบคำสั่งต่าง ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.