A. 如何獲得android armv-7版libvlc.so libvlccore.so,編譯vlc.tar.gz源碼包還是編譯vlc for android.tar.gz
一: 安裝android SDK, NDK, JDK三個工具,SDK是android系統用的,有些SDK還包含了eclipse,
NDK是用來編譯C/C++代碼的,這樣使得android應用程序可能通過java來調用c/c++程序、JDK不用說,是java運行必須的環境。
二: 根據第一步解壓的三個工具,配置這三個工具的環境變數(PATH),方法很多,可以修改~/.bashrc /etc/profile等等,這一步一定要正確,否則系統會找不到這三個工具,後面的編譯會用到這幾個工具,當然也就會出錯了,因為系統默認不知道這幾個程序的位置,這跟windows下的環境變數一個道理。為了驗證環境變數是否配置正確,可以到別的目錄下運行這幾個程序,比如到根目錄下看能否運行ndk-build adb等程序,或者echo $PATH列印一下當前的環境變數並驗證。
B. 如何使用libvlc實現最簡單的播放器
VLC開發所需的庫文件可以有2種獲取方法:
1. 自行編譯
2. 直接從安裝目錄裡面拷貝出來
第一種方法難度要大一些。尤其是在Windows下編譯VLC是個比較麻煩的事情。一般情況下可以選擇第二種方法獲取VLC開發所需的文件。
開發VLC所需的文件的位置:
1. 動態鏈接庫*.dll:安裝目錄下的libvlc.dll,libvlccore.dll以及plugins目錄下的所有文件。
PS:VLC支持非常多的plugin。因此plugins目錄的體積確實是非常大的。
2. 靜態鏈接庫*.lib:安裝目錄/sdk/lib
3. 頭文件*.h:安裝目錄/sdk/include
新建一個VC工程後,把上述三類文件分別拷貝至新工程目錄下,並且配置它們的路徑之後,就可以使用libVLC進行開發了。
C. vlc播放器是用什麼寫出來的
以下是編譯VLC源代碼時所需的庫:
Third party libraries used by VLC
You'll find a complete list on the wiki.
But, here are the most important libraries.
Audio/Video codecs
liba52 - an ATSC A/52 (aka AC3) audio decoder
libmad - an MPEG audio decoder
libmpeg2 - an MPEG1/2 video decoder
libavcodec (ffmpeg) - an extensive audio/video codec library which supports several formats like MPEG4, H263, WMV/A etc...
libogg - an Ogg bitstream parser
libvorbis - a Vorbis audio decoder
libflac - a FLAC (Free Lossless Audio Codec) audio decoder
libspeex - a Speex (Free speech codec) audio decoder
libtheora - a Theora video decoder
libfaad2 - an AAC audio decoder
libdv - a DV video decoder (deprecated in favor of libavcodec)
libxvidcore (xvid) - an ISO MPEG-4 compliant video codec (deprecated in favor of libavcodec)
libdca - A DTS Coherent Acoustics decoding library.
GUI framework libraries
wxWidgets - a cross-platform C++ GUI framework that keeps the look and feel of each platform
QT4 - a C++ Cross-Platform Rich Client Development Framework
Audio/Video output libraries
libsdl - a cross-platform multimedia library designed to provide level access to audio, and 2D video framebuffer
Miscellaneous libraries
libdvdcss - a library for accessing encrypted DVDs
libdvdnav - a library for DVD navigation
libdvdread - a library for reading DVD-Video images
libdvbpsi - a library designed for decoding and generation of MPEG TS and DVB PSI tables
libopenslp - an open-source implementation of Service Location Protocol
gettext - a set of tools that provides a framework to help applications proce multi-lingual messages
libfreetype2 - a software font engine that is designed to be small, efficient, highly customizable and portable while capable of procing high-quality output (glyph images).
fribidi - A Free Implementation of the Unicode Bidirectional Algorithm
liveMedia - C++ libraries for multimedia streaming (RTP/RTCP, RTSP, SIP)
matroska - a new, extensible open standard Audio/Video container format
If you're using those libs to compile VLC for windows with mingw-gcc 3.3.1, you can use our Win32 contribs.
如果需要更權威的回答,這里是VLC官方提供的源碼下載:
http://download.videolan.org/pub/vlc/
D. java視頻播放器製作關於vlcj找到LibVLC本地庫的問題
找不到庫的原因估計是因為你的系統是64位的,但是你卻安裝了32位的vlc,所以才找不到。
E. 如何使 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編碼了。
F. 無法定位程序輸入點xxx於動態鏈接庫libvlccore.dll
<bean id="CollectionBean" class="test.CollectionBean" parent="abstractCollectionBean">
public class Springusercontroller extends AbstractCommandController{
private String page;
private String error;
private IuserinfoService service;
G. windows平台下編譯vlc,使用的是mingw+msys,到了make prebuilt,出現了pkg-config command not found
做這么專業的工作,還用WINDOWS。
H. vlc for android 源碼能不能在windows環境下編譯
1. 准備編譯環境
基本上按照這篇wiki的介紹就足夠了,為了順利完成編譯,建議首先保證相關的軟體或者依賴庫都已經下載好了,我再強調一下幾個重點注意事項。
(1) Android SDK:必須使用SDK Platform Android 5.0, API 21,因為VLC-for-android用到了Android 5.0 的一些API。
(2) 最好通過apt-get install 把下面這些依賴的軟體都安裝一遍,或更新到最新版
git,apache-ant (or ant), autoconf, automake, autopoint, cmake,
gawk (or nawk), gcc, g++, libtool, m4, patch, pkg-config, ragel,
subversion, unzip.
2. 下載源碼包
直接通過git下載VLC-for-android最新的源碼即可:
git clone git://git.videolan.org/vlc-ports/android.git
3. 編譯VLC源碼和VLC Android工程
(1) 配置編譯環境變數
具體參考wiki的介紹,你可以寫個shell腳本來執行,避免每次編譯都要配置,下面是我的環境變數,可以根據你的路徑修改:
#! /bin/sh
export ANDROID_SDK=/opt/android/sdk/
export ANDROID_NDK=/opt/android/android-ndk-r10/
export ANT_DIR=/opt/android/ant/
export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools:$ANT_DIR
export ANDROID_ABI=armeabi-v7a
(2) 執行編譯
sh compile.sh
VLC不愧是使用這么廣泛的播放器,它的編譯腳本寫得非常強大和智能,直接通過執行compile.sh,它會自動check所有的依賴,並通過網路去下載缺失的庫。
首先,它會下載vlc的源碼,並存放在當前目錄下。然後去下載依賴的第三方庫文件。
當然,由於GFW的存在,有的時候下載會失敗,這個時候,就需要你手動去Google搜索它正在下載的依賴文件,手動下載好了之後放到 vlc/contrib/tarballs目錄下,然後再回到命令行重新執行 sh compile.sh
它依賴的全部第三方庫文件如圖所示:
(3) 編譯問題
編譯過程還算順利,只出現過一個大問題,如下:
google/protobuf/unittest.proto:853:21: Missing field number.
google/protobuf/unittest.proto:862:1: Reached end of input in message definition (missing '}').
make[3]: *** [unittest_proto_middleman] Error 1
網上也搜不到解決方案,我看了下GitHub上Protobuf的Readme,然後下載了最新的protobuf放到vlc/contrib
/tarballs/contrib-android-arm-linux-androideabi/protobuf目錄下,執行.
/configure --disable-shared,再編譯,沒想到就直接過了。
4. 載入VLC-For-Android的Java工程
編譯通過後,就可以直接在vlc-android/bin目錄下看到debug版的apk了,下面簡單說說在Eclipse中載入vlc-android的整個工程。
打開Eclipse,選擇Import,把vlc-for-android目錄下所有的工程到導入到Eclipse中(我去掉了TV工程),如圖所
示,有5個必須的工程,其中,VLC是主工程,其他四個都是Lib工程。沒有什麼意外的話,直接運行VLC工程,就可以在Android手機上看到VLC
播放器應用了!
I. msys編譯vlc,configure:fork:Resource temporarily unavailable
我也遇到同樣問題
J. VLC播放器windows版本中文字幕亂碼,求解決方案
VLC播放器2.0、2.1Windows版字幕中文(或其他非拉丁)字體bug修正:
如果一個字體的名稱是非拉丁/非ASCII字母但是登錄項是拉丁/ASCII字母,那麼這個字體不能選擇用作VLC的字幕字體。
比如你的Windows的系統區域是中國大陸簡體中文,你將用不了宋體、微軟雅黑等擁有中國大陸簡體中文名的字體,只得使用沒有中國大陸簡體中文名的字體如DFKai-SB等。繁體和日文等也有類似情況。
要修正此bug,請將2.0文件夾(你的VLC播放器版本是2.1則用2.1文件夾)下的libfreetype_plugin.dll復制到<VLC安裝目錄>\plugins\text_renderer\下,覆蓋原文件,即可。
以後版本的VLC將會修正此bug。
修正了bug後就可正常設置中文字幕識別了。設置方法為在Tools -> Preferences(或Ctrl+P快捷鍵) -> Subtitles & OSD中,把Default encoding設置為Universal Chinese (GB18030)(用於簡體中文),或者Traditional Chinese (Big 5)(用於繁體中文),然後在Font一欄選擇你想要用的字體。
參考鏈接裡面有補丁下載地址