色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

WebAssembly技術(shù)_編譯ffmpeg(ubuntu20.04)

DS小龍哥-嵌入式技術(shù) ? 來(lái)源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2023-07-14 10:29 ? 次閱讀

1. 前言

WebAssembly/wasm WebAssembly 或者 wasm 是一個(gè)可移植、體積小、加載快并且兼容 Web 的全新格式。

WebAssembly的名字帶個(gè)匯編Assembly,所以我們從其名字上就能知道其意思是給Web使用的匯編語(yǔ)言,是通過(guò)Web執(zhí)行低級(jí)二進(jìn)制語(yǔ)法。

但是WebAssembly并不是直接用匯編語(yǔ)言,而提供了抓換機(jī)制(LLVM IR),把高級(jí)別的語(yǔ)言(C,C++和Rust)編譯為WebAssembly,以便有機(jī)會(huì)在瀏覽器中運(yùn)行。主要是解決目前JS語(yǔ)言的效率問(wèn)題,設(shè)計(jì)立足點(diǎn)為快速,內(nèi)存安全和開(kāi)放。所以是一種運(yùn)行機(jī)制,一種新的字節(jié)碼格式(.wasm)

官網(wǎng)介紹:https://www.wasm.com.cn/

2. 安裝ubuntu 20.04

ubuntu20.04 安裝emcc編譯最方便,只需要簡(jiǎn)單的幾個(gè)命令即可完成。

鏡像下載地址: http://mirrors.aliyun.com/ubuntu-releases/20.04/image.pngimage.png

下載之后,安裝系統(tǒng)。

我這里使用VMware Workstation Pro 15.5 虛擬機(jī)安裝系統(tǒng)。

安裝的過(guò)程就不多說(shuō)了,常規(guī)步驟,都比較簡(jiǎn)單。

WZ1.jpg

image.png

系統(tǒng)安裝完畢之后需要安裝vmtools工具才可以放大自適應(yīng)桌面,訪問(wèn)共享目錄,支持復(fù)制粘貼。 如果在下拉菜單里,安裝vm tools工具的按鈕是灰色的,需要將CD掛載選項(xiàng),改成自動(dòng)檢測(cè),然后關(guān)閉系統(tǒng),關(guān)閉虛擬機(jī),重新再打開(kāi),再啟動(dòng)系統(tǒng),再次打開(kāi)下拉菜單,就可以選擇工具安裝了。 image.png

WZ1.jpg

將彈出的壓縮包拷貝出來(lái),解壓,運(yùn)行里面的腳本,然后一直回車(chē)確認(rèn),最后就可以安裝完成。 注意: 安裝過(guò)程中有no 這種選項(xiàng)的時(shí)候要注意,要輸入yes,在按下回車(chē),不然就直接結(jié)束安裝了。

image.png

3. ubuntu 20.04安裝emcc編譯器

安裝emcc編譯器之前需要安裝python,ubuntu20.04 系統(tǒng)安裝之后,系統(tǒng)默認(rèn)是安裝了python 的, 這個(gè)就不用管了。

emcc編譯器的代碼在GitHub倉(cāng)庫(kù)里,需要安裝Git工具,這個(gè)系統(tǒng)沒(méi)自動(dòng)安裝,需要自己安裝。

wbyq@wbyq:~/work_pc/WebAssembly/emsdk$ sudo apt  install git

編譯代碼需要用到make命令,make也沒(méi)有安裝,需要手動(dòng)安裝。 image.png

安裝之后,就可以繼續(xù)下面的步驟了。

(1)創(chuàng)建工作目錄,存放接下來(lái)下載的相關(guān)文件

xl@xl:~/work$ mkdir wasm
 xl@xl:~/work$ cd wasm/

(2)從倉(cāng)庫(kù)克隆項(xiàng)目

xl@xl:~/work/wasm$ git clone https://github.com/emscripten-core/emsdk.git 
 正克隆到 'emsdk'...
 remote: Enumerating objects: 3138, done.
 remote: Total 3138 (delta 0), reused 0 (delta 0), pack-reused 3138
 接收對(duì)象中: 100% (3138/3138), 1.66 MiB | 174.00 KiB/s, 完成.
 處理 delta 中: 100% (2043/2043), 完成.
 wbyq@wbyq:~/work_pc/WebAssembly$ ls
 emsdk
 wbyq@wbyq:~/work_pc/WebAssembly$ cd emsdk/
 wbyq@wbyq:~/work_pc/WebAssembly/emsdk$ ls
 bazel            emscripten-releases-tags.json  emsdk_env.bat   emsdk_env.ps1        emsdk.ps1                 legacy-emscripten-tags.txt  README.md
 docker           emsdk                          emsdk_env.csh   emsdk_env.sh         emsdk.py                  LICENSE                     scripts
 emcmdprompt.bat  emsdk.bat                      emsdk_env.fish  emsdk_manifest.json  legacy-binaryen-tags.txt  llvm-tags-64bit.txt         test

(3)安裝最新的編譯器

wbyq@wbyq:~/work/wasm/emsdk$ ./emsdk install latest
 Resolving SDK alias 'latest' to '3.1.4'
 Resolving SDK version '3.1.4' to 'sdk-releases-upstream-39e60dda6945cfcd6487725bdb1361ae7975173f-64bit'
 Installing SDK 'sdk-releases-upstream-39e60dda6945cfcd6487725bdb1361ae7975173f-64bit'..
 Installing tool 'node-14.18.2-64bit'..

等待片刻,即可全部下載完成。 image.png

(4)激活SDK

xl@xl:~/work/wasm/emsdk$ ./emsdk activate latest

(5)生效環(huán)境變量

xl@xl:~/work/wasm/emsdk$ source emsdk_env.sh

image.png

(6)查看編譯器版本詳細(xì)信息

該命令只能在當(dāng)前終端生效,可以將命令加到etc/profile里,重啟系統(tǒng)全局生效。 image.png

4. 編寫(xiě)C/C++代碼測(cè)試

下面編寫(xiě)一個(gè)C語(yǔ)言代碼,導(dǎo)出函數(shù)接口,給前端JS調(diào)用測(cè)試。

(1)編寫(xiě)簡(jiǎn)單的C代碼,提供1個(gè)測(cè)試函數(shù)

#include < emscripten.h >
 #include < stdio.h >
 #include < stdlib.h >
 #include < string.h >
 ?
 int func_sum(int x, int y) 
 {
   return x + y;
 }

(2)編譯測(cè)試

emcc app.c -o app.js -s EXPORTED_FUNCTIONS="['_func_sum','_malloc','_free']" -s WASM=1

EXPORTED_FUNCTIONS 里填寫(xiě)可以導(dǎo)出給js調(diào)用的函數(shù)接口。

(3)編譯成功生成app.js和app.wasm image.png

(4)編寫(xiě)一個(gè)HTML文件。名稱(chēng)設(shè)置為: index.html

< !doctype html >
 < html lang="en-us" >
   < head >
     < meta charset="utf-8" >
     < meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
     < title >wasm test< /title >
   < /head >
   
   < body >  
   
     < script type='text/javascript' >   
       function run1()
       {
         console.log('100+50=',_func_sum(100,50))
       }
     < /script >
     
     < input type="button" value="100+50=?" onclick="run1()" / >
     
     < script async type="text/javascript" src="hello.js" >< /script >
   < /body >
 < /html >

(5)啟動(dòng)HTTP服務(wù)器

python3 -m http.server

image.png

(6)打開(kāi)瀏覽器訪問(wèn)

按下F12,查看控制臺(tái)的輸出。

http://127.0.0.1:8000/index.html

5. 編譯ffmpeg

(1)下載ffmpeg源碼 image.png 切換分支到4.1 image.png

git clone https://git.ffmpeg.org/ffmpeg.git
 cd ffmpeg
 git checkout -b 4.1 origin/release/4.1

(2)編譯

emconfigure ./configure --cc="emcc" --enable-cross-compile --target-os=none --arch=x86_32 --cpu=generic --disable-ffplay --disable-ffprobe --disable-asm --disable-doc --disable-devices --disable-pthreads --disable-w32threads --disable-network --disable-hwaccels --disable-parsers --disable-bsfs --disable-debug --disable-protocols --disable-indevs --disable-outdevs --enable-protocol=file

image.png

(3)編寫(xiě)C代碼,測(cè)試ffmpeg解碼,編譯

emcc app.c ffmpeg-4.4-wasm/lib/libavformat.a ffmpeg-4.4-wasm/lib/libavcodec.a  ffmpeg-4.4-wasm/lib/libswresample.a ffmpeg-4.4-wasm/lib/libavutil.a -I "ffmpeg-4.4-wasm/include" -s EXPORTED_FUNCTIONS="['_malloc','_free','ccall','allocate','UTF8ToString','_write_file','_print_version','_get_FileSize','_read_file','_GetVideoFrame','_GetVideoWidth','_GetVideoDuration','_GetVideoHeight','_DeleteMemory','_find_Decoder']" -s WASM=1 -s ASSERTIONS=0 -s TOTAL_MEMORY=167772160 -s ALLOW_MEMORY_GROWTH=1 -o out/ffmpeg_decoder.js

(4)開(kāi)啟服務(wù)器

python -m http.server

(5)調(diào)用測(cè)試ffmpeg

WZ1.jpg

WZ1.jpg

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    379

    瀏覽量

    28124
  • 瀏覽器
    +關(guān)注

    關(guān)注

    1

    文章

    1022

    瀏覽量

    35328
  • Ubuntu
    +關(guān)注

    關(guān)注

    5

    文章

    563

    瀏覽量

    29704
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    657

    瀏覽量

    32852
  • ffmpeg
    +關(guān)注

    關(guān)注

    0

    文章

    46

    瀏覽量

    7395
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    怎樣利用Ubuntu20.04去安裝Mentor Calibre 2020?

    怎樣利用Ubuntu20.04去安裝Mentor Calibre 2020?有沒(méi)有人遇到過(guò)這個(gè)問(wèn)題啊
    發(fā)表于 06-23 07:19

    請(qǐng)問(wèn)在Ubuntu20.04下如何燒錄CH32F103C8T6?

    請(qǐng)教, 在Ubuntu20.04下如何燒錄CH32F103C8T6?STM32F1/STM32F4可以通過(guò)stlink下載, CH32F103也支持嗎?
    發(fā)表于 05-20 07:43

    RK3588S-PC的ubuntu20.04系統(tǒng)上運(yùn)行ros報(bào)錯(cuò)

    用官方的ubuntu20.04安裝ros 運(yùn)行示例時(shí)出現(xiàn)如下問(wèn)題,請(qǐng)問(wèn)我該怎么解決
    發(fā)表于 12-30 14:35

    RK3399升級(jí)為ubuntu20.04后無(wú)法連接wifi怎么解決?

    問(wèn)題描述及復(fù)現(xiàn)步驟:RK3399升級(jí)為ubuntu20.04后無(wú)法連接wifi,請(qǐng)問(wèn)是什么原因呢,怎么解決還有,log日志我也不知道傳啥,瞎弄的一個(gè)文件
    發(fā)表于 01-10 15:05

    RK3588編譯環(huán)境Ubuntu20.04編譯配置-增加交換內(nèi)存

    迅為提供的編譯環(huán)境 Ubuntu20.04 默認(rèn)配置了交換內(nèi)存是 9G,如果在編譯過(guò)程中,因內(nèi)存不夠而編譯報(bào)錯(cuò),可以參考本小節(jié)進(jìn)行設(shè)置。這里舉例分配 5G 交換內(nèi)存。在開(kāi)始之前,使用命
    發(fā)表于 03-22 10:10

    為什么無(wú)法在ubuntu20.04上使用flex builder構(gòu)建tsntool?

    當(dāng)我在 ubuntu20.04 上使用 flex builder 編譯 tsntool 時(shí),發(fā)現(xiàn)無(wú)法訪問(wèn)“的錯(cuò)誤我讀了另一篇文章那個(gè)來(lái)源。 codeaurora.org 停止服務(wù)了,那么現(xiàn)在
    發(fā)表于 04-20 09:07

    Ubuntu20.04對(duì)benchmark編譯出不帶壓縮指令的匯編代碼,缺少 -lstdc++是為什么?

    系統(tǒng):Ubuntu20.04 Hbird-SDK: 0.1.3 工具鏈: nuclei_riscv_newlibc_prebuilt_linux64_2022.12 我想使用 make dasm
    發(fā)表于 08-11 13:01

    Ubuntu20.04系統(tǒng)中使用用STM32F2107RCT6點(diǎn)亮一個(gè)二極管燈

    Ubuntu20.04系統(tǒng)中使用用STM32F2107RCT6點(diǎn)亮一個(gè)二極管燈
    發(fā)表于 12-05 14:51 ?8次下載
    <b class='flag-5'>Ubuntu20.04</b>系統(tǒng)中使用用STM32F2107RCT6點(diǎn)亮一個(gè)二極管燈

    WebAssembly技術(shù)_編譯ffmpeg(ubuntu)

    WebAssembly/wasm WebAssembly 或者 wasm 是一個(gè)可移植、體積小、加載快并且兼容 Web 的全新格式。
    的頭像 發(fā)表于 08-14 09:43 ?1548次閱讀
    <b class='flag-5'>WebAssembly</b><b class='flag-5'>技術(shù)</b>_<b class='flag-5'>編譯</b><b class='flag-5'>ffmpeg</b>(<b class='flag-5'>ubuntu</b>)

    如何制作ubuntu20.04的文件系統(tǒng)

    firefly自帶的文件系統(tǒng),由于缺少一些基本功能模塊,因此,我們可以自己手動(dòng)制作一個(gè)ubuntu20.04的文件系統(tǒng)。
    的頭像 發(fā)表于 10-17 12:12 ?3761次閱讀

    【ROC-RK3568-PC開(kāi)發(fā)板試用體驗(yàn)】Ubuntu20.04桌面系統(tǒng)體驗(yàn)升級(jí)與GCC安裝

    本文來(lái)源電子發(fā)燒友社區(qū),作者:李先生, 帖子地址: https://bbs.elecfans.com/jishu_2303743_1_1.html 本視頻進(jìn)行Ubuntu20.04桌面系統(tǒng)體驗(yàn) 并升級(jí)系統(tǒng) 安裝GCC 體驗(yàn)視頻詳見(jiàn)作者原貼
    的頭像 發(fā)表于 10-18 16:02 ?1544次閱讀

    【ROC-RK3568-PC開(kāi)發(fā)板試用體驗(yàn)】燒錄Ubuntu20.04系統(tǒng)

    ://www.t-firefly.com/doc/download/107.html下 固件-Ubuntu 網(wǎng)盤(pán)下下載 Ubuntu/Ubuntu20.04/ROC-RK3568-PC-UBU
    的頭像 發(fā)表于 10-19 10:08 ?5777次閱讀
    【ROC-RK3568-PC開(kāi)發(fā)板試用體驗(yàn)】燒錄<b class='flag-5'>Ubuntu20.04</b>系統(tǒng)

    ubuntu20.04安裝教程

    Ubuntu 20.04 的安裝步驟如下: 制作啟動(dòng)U盤(pán)。首先下載Ubuntu 20.04的鏡像文件和UltraISO(鏡像制作工具)。然后使用UltraISO打開(kāi)下載的鏡像文件,插入
    的頭像 發(fā)表于 11-13 16:59 ?2198次閱讀

    Ubuntu 20.04如何更改用戶(hù)名

    產(chǎn)品簡(jiǎn)介本文適用于所有RK3568/RK3588平臺(tái)產(chǎn)品在Ubuntu20.04系統(tǒng)上如何更改用戶(hù)名,本文以IDO-EVB3588開(kāi)發(fā)板為例,在ubuntu20.04系統(tǒng)上修改用戶(hù)名industio
    的頭像 發(fā)表于 01-26 08:34 ?845次閱讀
    <b class='flag-5'>Ubuntu</b> <b class='flag-5'>20.04</b>如何更改用戶(hù)名

    【北京迅為】iTOP-LS2K0500開(kāi)發(fā)板快速使用編譯環(huán)境ubuntu20.04第一章加載迅為提供 Ubuntu20.04

    【北京迅為】iTOP-LS2K0500開(kāi)發(fā)板快速使用編譯環(huán)境ubuntu20.04第一章加載迅為提供 Ubuntu20.04
    的頭像 發(fā)表于 09-18 16:43 ?455次閱讀
    【北京迅為】iTOP-LS2K0500開(kāi)發(fā)板快速使用<b class='flag-5'>編譯</b>環(huán)境<b class='flag-5'>ubuntu20.04</b>第一章加載迅為提供 <b class='flag-5'>Ubuntu20.04</b>
    主站蜘蛛池模板: 亚洲一区在线播放| 九九久久精品| 特黄特色大片免费播放器9| 成人在无码AV在线观看一| 秋霞午夜鲁丝片午夜精品久 | 成人欧美一区二区三区白人| 欧美亚洲日韩一道免费观看| china男士同性视频tv| 亲女乱h文小兰第一次| 俄罗斯XXXXXL18| 乌克兰肛交影视| 国产一区内射最近更新| 亚洲福利精品电影在线观看| 激情办公室| 影音先锋男人资源813.| 麻豆高潮AV久久久久久久| FREE17一18外女破| 日韩欧美国产免费看清风阁| 国产成人无码区免费内射一片色欲 | 国产伦精品一区二区三区精品| 小小水蜜桃视频高清在线播放| 狠狠色丁香婷婷久久综合五月 | 最近中文字幕完整版免费高清 | 睡觉被偷偷进入magnet| 国产乱色伦影片在线观看| 日日碰狠狠躁久久躁77777| 第一次玩老妇真实经历| 青青视频国产色偷偷| 国产中文字幕一区| 丰满人妻熟女色情A片| cctv官网| 亚洲综合国产在不卡在线| 久久橹| 9位美女厕所撒尿11分| 色聚网久久综合| 果冻传媒完整免费网站在线观看 | 国产亚洲精品视频在线网| 黑人阴茎插女人图片| 亚洲国产在线午夜视频无| 久久精品电影网| av天堂电影网在线观看|