日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

VLC简介

發布時間:2023/11/27 生活经验 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VLC简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

VLC原指VideoLAN客戶端(VideoLANClient),是一款開源的、跨平臺的、可擴展的、多媒體播放器、流媒體服務器及框架,可播放大多數多媒體文件,以及DVD、音頻CD、VCD及各類流媒體協議,現更名為VLC media player,最新版本為2.2.0。

VideoLanServer(VLS)的功能已經合并到VLC中,所以VLC不僅僅是一個音/視頻播放器,它也可以作為小型的視頻服務器(或作為流媒體服務器使用),更可以一邊播放一邊轉碼,把視頻流發送到網絡上。VLC最為突出的就是網絡流的播放功能。

VLC通常不影響也不依賴于系統中自帶的解碼器。

VLC的license是GPL。

VLC采用多線程并行解碼架構,線程之間通過單獨的一個線程控制所有線程的狀態,解碼器采用filter模式,組織方式為模塊架構

VLC播放一個視頻大致分為4個步驟:(1)、access,從不同的源獲取流;(2)、demux,就是把通常合在一起的音頻和視頻分離(還有可能的字幕);(3)、decode,解碼,包括音頻和視頻的解碼;(4)、output,輸出,也分為音頻和視頻的輸出(aout和vout)。

VLC能夠處理的流類型包括:(1)、ES(ElementaryStreams);(2)、PS(Program Stream);TS(Transport Stream)

下面簡單說明下源碼中各個目錄的作用,其實源碼中大部分每個.h、.c文件的開始處都對此文件的作用進行了簡單描述:

1.????????/autotools:

2.????????/bin:此目錄下的winvlc.c文件用于生成.exe執行文件;

3.????????/compat:生成libcompat庫的源文件,此目錄下包含了與平臺相關的一些代碼,比如Windows、POSIX、BSD等;

4.????????/contrib:第三方庫,此目錄下包含很多空的目錄,如果要想編譯這些第三方庫,需要自己單獨下;

5.????????/doc:一些log等說明信息;

6.????????/extras:一些額外的文件;

7.????????/include:所有頭文件的集合;

8.????????/lib:生成libvlc庫的源文件;

9.????????/m4:宏處理器;

10.????/modules:VLC的模塊部分,這些模塊只在程序載入它們時有效;每一個模塊,可提供不同的功能,它們適合特定文件或某一特定的環境;此外,audio_output/video_output/interface模塊都寫成了可跨平臺的代碼,方便支持新的平臺。如果你想編譯某個模塊可以通過:% ./configure --enable-module_name?;如果不想編譯某個模塊可以通過: %? ./configure? --disable-module_name ;如果想得到某個模塊的幫助信息,可通過:%vlc --advanced -p module_name ;????

11.????/modules/access:從不同的源獲取流;

12.??/modules/access_output:以不同的形式輸出流;

13.??/modules/arm_neon:arm架構,一些匯編代碼;

14.??/modules/audio_filter:各種音頻濾波器;

15.??/modules/audio_mixer:音量設置模塊;

16.??/modules/audio_output:音頻輸出模塊,聲音將會輸出到你的音頻系統中;

17.????/modules/codec:音視頻編解碼模塊;

18.????/modules/control:動作控制功能,如鼠標手勢控制vlc等;

19.????/modules/demux:將合在一起的音頻和視頻分離(還有可能包括字幕);

20.????/modules/gui:不同平臺的用戶界面模塊;

21.????/modules/hw/vdpau:VDPAU(VideoDecode and Presentation API for Unix)的API可以讓視頻播放器把一部分的視頻解碼和視頻圖像補償交給GPU,最初由NVIDIA開發;

22.????/modules/lua:與Lua腳本語言相關的模塊;

23.????/modules/meta_engine:

24.????/modules/misc:雜項,包括webservice解析、xml解析、playlist輸出模塊等;

25.????/modules/mux:將視頻、音頻、字幕合并為某一個視頻格式,如.avi、.mp4等;

26.????/modules/notify:notificationplugin;

27.????/modules/packetizer:音視頻打包模塊,如H264/AVC、MLP/TrueHD等;

28.????/modules/services_discovery:servicesdiscovery module;

29.????/modules/stream_filter:streamfilter;

30.????/modules/stream_out:流輸出模塊;

31.????/modules/text_renderer:文本渲染模塊;

32.????/modules/video_chroma:圖像格式轉換默認,如YUV到RGB等;

33.????/modules/video_filter:視頻各種濾波模塊,例如對渲染的圖像進行色度、對比度、飽和度的調整等;

34.????/modules/video_output:視頻輸出模塊,允許VLC顯示視頻到你的屏幕上;

35.????/modules/video_splitter:視頻分割模塊;

36.????/modules/visualization:可視化模塊,包括projectM、GOOM等;

37.????/po:i18n(語言翻譯)文件;

38.????/share:圖標、腳本等等;

39.????/src:生成libvlccore庫的源文件;

40.????/src/android:android平臺專用模塊;

41.????/src/audio_output:音頻輸出模塊;

42.????/src/config:配置模塊,從命令行和配置文件加載配置,提供功能模塊的讀取和寫入配置;

43.????/src/darwin:Mac(Darwin)平臺專用模塊;

44.????/src/extras:一些平臺的特殊代碼;

45.????/src/input:獲取流模塊,建立并讀取一個輸入流,并且分離其中的音頻和視頻,然后把分離好的音頻和視頻流發送給解碼器;

46.????/src/interface:用戶接口模塊,提供代碼中可以調用的接口;

47.????/src/misc:libvlc庫使用的其它部分功能,是被其它模塊使用的雜項,如數據庫管理、CPU檢測、圖像的讀寫等;

48.????/src/modules:模塊管理;

49.????/src/network:提供網絡接口(socket管理,網絡錯誤等);

50.????/src/os2:OS/2平臺專用模塊;

51.????/src/playlist:播放列表控制模塊;

52.????/src/posix:與POSIX(可移植操作系統接口)相關的模塊;

53.????/src/stream_output:輸出音頻流和視頻流到網絡;

54.????/src/test:libvlccore庫的測試模塊;

55.????/src/text:字符集;

56.????/src/video_output:初始化視頻播放器,把從解碼器得到的視頻畫面轉化格式(從YUV轉為RGB)然后播放它們;

57.????/src/win32:windows平臺專用模塊;

58.????/test:一些腳本和測試代碼;

?

VLC中所有的模塊均以動態庫(插件)方式來管理,就連main模塊也不例外??梢栽趙indows下查看VLC安裝目錄下的plugin目錄,里面包含了所有的動態庫。當VLC啟動的時候,主模塊采用動態加入的方式。采用宏定義將該模塊的入口函數導出,以讓其它函數調用,同時入口函數里面初始化了該模塊相關的所有函數指針。

VLC采用全模塊化結構,在系統內部,通過動態的載入所需的模塊,放入一個module_bank的結構體中統一管理,連VLC的Main模塊也是通過插件的方式動態載入的(通過module_InitBank函數在初始化建立module_bank時)。對于不支持動態載入插件的系統環境中,VLC也可以采用builtin的方式,在VLC啟動的時候靜態載入所需要的插件,并放入module_bank統一管理。VLC無論是作為流媒體服務器還是多媒體播放器,它的實質就是一個”播放器”,它實質處理的是ES、PES、PS、TS等流間的轉換、傳輸與顯示。

可以通過git下載最新源碼:git ?clone git://git.videolan.org/vlc.git

???????? 從網上https://github.com/sunqueen?tab=repositories下載最新的vlc-2.2.0-rc2.32-2013配置好的vs2013工程,有win32 debug和release兩種配置,其中debug模式已經配置好,release模式許多工程模塊還沒有配置,要想運行release模式需要自己仿照著debug模式配置。你可以直接運行debug模式,重新編譯整個winvlc工程,會在/vlc-2.2.0-rc2.32-2013/Debug目錄下生成相應的靜態庫、動態庫以及winvlc.exe文件,除direct3d工程沒有編譯成功外,其它均能正確生成,此direct3d工程沒有編譯成功的原因是機子本身并沒有direct3d環境導致,此庫并不是必須的,先不用去理會。運行winvlc.exe導入一個視頻文件可以播放,后來發現此winvlc.exe和從官網下載的/vlc-2.2.0/vlc.exe,有時顯示效果不一致,后面會進一步分析下原因。

總結

以上是生活随笔為你收集整理的VLC简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

歡迎分享!

轉載請說明來源于"生活随笔",并保留原作者的名字。

本文地址:VLC简介