vlc腳本
Ⅰ 命令行下怎樣遠程式控制制VLC播放
開宗明義,在Headless ( i.e. without a monitor or input device)的伺服器(例如,各類嵌入式「玩具板子」)上如果架起VLC進行多媒體播放,怎樣才是最方便的控制方式?
同時,因為希望是可以腳本控制,所以最好是可以做到非互動式的指令。
如下是簡單的步驟:
VLC實際上擁有靈活強大的控制方式,由於我們上來就限定了Headless,那麼命令行顯然是先決條件,VLC文檔中已經列出了支持的幾種Remote方式:
考慮到三者中rc應該是最強大和靈活的(ncurses需要configure,telnet更多的是互動型,何況rc本身就可以支持telnet訪問),我們就focus在rc 介面上。
使能方法非常簡單,調用vlc的時候,用:
cvlc -I rc --rc-fake-tty --rc-host <ip>:<port>
注意:如果需要區域網內訪問,請填寫本機ip,如果只要本機訪問,用localhost就可以了
得到如下信息(忽略那些錯誤吧,畢竟Headless么,很多介面對VLC來說都缺失,但是不影響使用)
直接藉助幫助文件, 可見還是非常強大的:
實際上,在一些 討論 中看到,如果只是需要本機訪問,更高效的辦法是藉助一個unix socket文件,從而通過socket文件來訪問,簡單說就是將上面提到的-rc-host選項變成-rc-unix然後用一個文件作為輸入;
這樣可以用類似於形如下面指令的方法來模擬socket訪問 (作者以OSX為例,應當是沒有問題的):
echo normal | nc -U /Users/vlc.sock
我的例子,Debian中,nc似乎是不適用,更多人推薦用socat (需要安裝)
echo 「pause」 | socat – UNIX-CONNECT:/Users/vlc.sock
上面可以理解成將管道化之後的ECHO字元向這個Unix的Socket發送。可是在我這里死活都會遇到文件connection refused,作為菜鳥,實在無力解決,特別是看到有強者遇到類似問題交叉比較得出可能和特定版本的kernel stock存在bug有關之後,不管看不看得懂,我都理直氣壯的放棄了——直接轉向了上面提到的host:port的方案。
所以:
如果是互動式,直接 nc <host> <port> ,就可以進入這個介面界面了:
如果不需要互動:
參考上節:
echo status | nc -w 0 <ip> <port>
-w是指示說該命令之後,立刻退出,實際上OSX下並不一定需要,只是為了和下面linux對照一下。
大致相同,區別只是在非互動式下,
echo status | nc -q 0 <ip> <port>
兩者區別只是一個用了' w ait'之意,另外一個是' q uit'罷了,想想還挺風趣....風趣個妹啊,這不是折騰跨平台用戶嗎?!
至此,該問題解決,不論是想在遠程式控制制無輸入(顯示)設備上的播放,還是想用腳本對其他線程的VLC播放進行自動化的干預控制,都不成問題了。
——怪不得有那麼多人喜歡用VLC啊,我恍然。
Ⅱ windows平台下vlc編譯出現缺少avformat、codec、swscal、mad庫的情況,這是為什麼呢
這東西要在 cygwin 裡面編譯是肯定的。
你在 cygwin 裡面編譯時,有些函數庫不是放在了標准位置,這樣的話需要 configure 時手動添加參數指定這些解碼器庫的位置才行。
一個新手就玩這么高深的編譯過程,你想幹嘛?
其實要我說,直接去下現成的 windows 版本不就行了,自己編譯干什麼?
Ⅲ 如何使 vlc 支持 fdk-aac 編碼windows平台
可能是由於fdk-aac開源協議的原因,VLC默認是不支持fdk-aac編碼的,fdk-aac 是非常優秀的AAC編碼庫,並且支持AAC-LD AAC-ELD, 對於要求低延遲的場景下很有用。
可以通過修改VLC的編譯腳本,並加入fdkaac庫來使用VLC支持fdkaac編碼器。
我是在64位的ubuntu16.04下編譯的,vlc的編譯方法參考VLC官網的編譯文檔。
1 修改vlc/extras/package/win32/configure.sh , 加入--enable-fdkaac, 這樣VLC就會編譯fdkaac這個模塊。
執行make,會出現編譯錯誤
as/package/win32/../../../moles/codec/fdkaac.c:56:32: fatal error: fdk-aac/aacenc_lib.h: No such file or directory
這是因為缺少fdk-aac庫相關的頭文件。
2 編譯fdk-aac庫
下載源碼https://github.com/mstorsjo/fdk-aac.git
在terminal下進入源碼目錄,輸入
mkdir winBuild
cd winBuild
../configure --host=i686-w64-mingw32 --prefix=VLCPATH/contrib/i686-w64-mingw32
make install
VLCPATH 替換成VLC代碼的路徑
3 編譯VLC代碼
make packag-win32-zip
這時應該可以編譯通過了, 在mole/codec/ 目錄下會生成libfakaac_plugin.dll文件。
還需要把這個模塊依賴的VLCPATH/contrib/i686-w64-mingw32/libfdk-aac-1.dll動態庫復制到這個目錄下。
現在VLC就可以支持fdk-aac編碼了。
Ⅳ 如何將Linux下的應用程序VLC設置為開機自啟動
linux中設置自動啟動可以編輯/etc/rc.d/rc.local文件,使用vim在/etc/rc.d/rc.local添加你需要啟動的內容即可。
rc.local在在系統啟動後執行,在用戶登陸前執行
rc.local腳本是一個在各運行級別里衫拆到rc.d目錄的rc.local腳本的軟鏈接,編號最大,所以被rc腳本執行時在各運行級別的初始化末尾進行。
在rc.local里設置是系統級別而非用戶級別,因為啟動腳本的初始化與用戶無關(啟動腳本初始化完成後,或乎棗才進入用戶登錄界面)。與用戶相關的設置頃明shell的配置文件如: ~/.bash_profile。