Linux驅動開發_mplayer播放器開發

      網友投稿 854 2022-05-28

      USB wifi (360) : 如何從官網下載源碼進行代碼移植、安裝相關無線工具、讓嵌入式設備支持WIFI。

      任務1: 安裝mplayer播放器并學習使用方法

      圖片格式、音樂文件(.mp3)、視頻文件(mp4)…….

      學習文件編程: bmp圖片格式、JPG(jpeglib)。

      視頻編碼解碼: ffmpeg庫。

      Mplayer播放器: 源碼開源,可以下載、可以更改….。 (X11)

      ? ?安裝libmad庫方法

      1. ?在linux系統目錄下創建libmad文件夾: mkdir /work/libmad -p

      2. ?將libmad源碼解壓到 /work/libmad目錄下:

      [root@wbyq libmad-0.15.1b]# tar xvf /mnt/hgfs/linux-share-dir/libmad-0.15.1b.tar.gz

      3. ?配置源碼,生成Makefile文件

      [root@wbyq libmad-0.15.1b]# ./configure CC=arm-linux-gcc --enable-fpm=arm --host=arm-linux --disable-debugging --prefix=$PWD/_install

      4. ?將Makefile文件第129行的-fforce-mem選項去掉

      5. ?編譯安裝

      [root@wbyq libmad-0.15.1b]# make && make install

      6. ?將生成的.so文件拷貝到開發板的lib目錄下。

      ? ?安裝mplayer播放器

      1. ?在/work目錄下創建一個mplayer文件夾

      2. ?將源碼解壓到mplayer目錄下

      3. ?配置mplayer源碼生成Makefile文件

      ./configure --prefix=$PWD/_install --cc=arm-linux-gcc --host-cc=gcc --target=arm-linux --enable-cross-compile --enable-mad --disable-gui --disable-menu --disable-x11 --yasm="" --extra-cflags=-I/work/libmad/libmad-0.15.1b/_install/include/ --extra-ldflags=-L/work/libmad/libmad-0.15.1b/_install/lib/

      4. ?編譯源碼: make

      編譯成功之后會在當前目錄下生成mplayer可執行文件,將該可執行文件拷貝到開發板根文件系統的/bin目錄下即可。

      5. ?播放測試

      [root@tiny4412 ]#mplayer -zoom -x 800 -y 480 /work/video_file/Video_2018-12-11.wmv

      ? ?Mplayer播放器使用方式:

      1. ?主模式,運行mplayer播放器,播放器將占用當前的終端,在主模式下mplayer程序不能后臺運行。

      默認從鍵盤上(表示輸入)獲取輸入信號對播放器進行控制。

      2. ?從模式: 將mplayer播放器當做子進程啟動,父進程可以通過管道與子進程之間進行通信。

      進程間通信: 無名管道/命名管道(FIFO)、消息隊列、內存映射(mmap)、內存共享、信號。

      創建子進程的函數: fork函數。

      ? ?聲卡驅動使用

      Linux驅動開發_mplayer播放器開發

      將該壓縮包拷貝到開發板根文件系統目錄下,解碼,運行聲卡啟動腳本。

      ? ?在開發板上解壓: [root@tiny4412 ]#tar xvf /mnt/Tiny4412_SoundCard_wm8960.tar -C /work/

      將耳機插在開發板的音頻輸出口上即可聽到聲音了。

      #include #include #include #include #include #include #include #include #include /* 獲取標準輸入的數據、寫給FIFO文件 */ void *pthread_func(void *argv) { int fd=open("/mplayer_fifo",2); if(fd<0) { printf("FIFO文件打開失敗!\n"); pthread_exit(NULL); //結束當前線程 } char buff[100]; int len; while(1) { printf("請輸入命令:"); fflush(stdin); //刷新緩沖區 fgets(buff,100,stdin); //從鍵盤上獲取數據 get_percent_pos get_file_name len=strlen(buff); // get_file_name [0~12] [13]='\n' write(fd,buff,len); // get_file_name '\n' memset(buff,0,100); } } int main(int argc,char **argv) { int pid; /*1. 創建無名管道*/ int fds[2]; pipe(fds); /*2. 創建子進程*/ pid=fork(); /*子進程代碼: mplayer播放器*/ if(pid==0) { /*將子進程的標準輸出重定向到管道寫端*/ dup2(fds[1],1); /*啟動子進程*/ execlp("mplayer","mplayer","-zoom","-x","800","-y","480","-slave","-quiet","-input","file=/mplayer_fifo","/work/video_file/Video_2018-12-11.wmv",NULL); } else /*父進程*/ { char buff[100]; int cnt=0; /*創建新的線程: 從鍵盤上獲取輸入的數據,寫給播放器的FIFO文件*/ pthread_t threadID; pthread_create(&threadID,NULL,pthread_func,NULL); pthread_detach(threadID); //設置分離屬性 while(1) { /*從管道的讀端讀取數據: 讀取就是mplayer播放器輸出的數據*/ cnt=read(fds[0],buff,100); buff[cnt]='\0'; printf("播放器輸出的值=%s\n",buff); } } return 0; }

      任務2:制作視頻廣告機

      廣告機應用場景: 公交站臺、地鐵車廂、銀行前臺大廳、高速公路、公園….

      1. ?有些廣告機只有視頻播放,沒有聲音。

      2. ?廣告機都支持網絡視頻文件更新---->文件更新使用現成的服務器: FTP服務器、NFS服務器。

      (1) ?如何判斷服務器上那些文件需要下載到本地? 通過shell腳本代碼或者使用C語言。

      (2) ?更新的時間一般是固定的: 20:00 23:00 …… 通過時間函數判斷時間是否到達。

      (3) ?在視頻問好更新的時候,視頻文件需要停止播放,可以在屏幕上顯示提示(正在更新…..)。

      3. ?廣告機需要支持自動播放,播放一個自動切換下一個、循環播放。

      調用讀目錄、循環遍歷目錄、得到視頻文件、mplayer播放器需要使用子進程方式啟動。

      廣告機: 音量調整、選擇視頻播放…….都不是廣告機的功能---是視頻播放器的功能。

      5G媒體 Linux

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:scratch運動起來 電子學會圖形化scratch編程等級考試一級真題編程題答案2019-5
      下一篇:70美元桌面電腦,樹莓派400:鍵盤式集成開發板
      相關文章
      亚洲av日韩精品久久久久久a| 97久久国产亚洲精品超碰热| 亚洲综合一区无码精品| 老司机亚洲精品影院无码| 亚洲欧洲日产国码无码网站| 久久国产成人精品国产成人亚洲| 国产亚洲情侣久久精品| 精品久久久久久亚洲中文字幕| 亚洲人成色77777在线观看| 亚洲欧美自偷自拍另类视| 亚洲一卡一卡二新区无人区| 国产99在线|亚洲| 国产亚洲精品bv在线观看| 亚洲一卡2卡3卡4卡5卡6卡| 亚洲日韩亚洲另类激情文学| 亚洲AV一区二区三区四区| 亚洲AV噜噜一区二区三区| 在线亚洲精品视频| 亚洲第一页综合图片自拍| 亚洲一区二区视频在线观看 | 亚洲最大黄色网站| 亚洲特级aaaaaa毛片| 亚洲国产成人久久综合一区| 亚洲欧洲另类春色校园网站| 亚洲国产日韩视频观看| 亚洲欧美乱色情图片| 噜噜噜亚洲色成人网站| 国产AV无码专区亚洲AWWW| 国产亚洲精品资源在线26u| 亚洲小视频在线观看| 亚洲激情电影在线| 亚洲一级特黄特黄的大片 | 亚洲国产精品无码一线岛国| 久久精品夜色国产亚洲av| 久久久久亚洲AV无码观看| 亚洲六月丁香六月婷婷色伊人| 亚洲日本乱码卡2卡3卡新区| 亚洲国产精品嫩草影院| 亚洲AV网站在线观看| 国产成人A人亚洲精品无码| 久久亚洲私人国产精品vA|