国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解

這篇具有很好參考價(jià)值的文章主要介紹了【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

大家好,歡迎來(lái)到停止重構(gòu)的頻道。

本期我們討論音視頻文件轉(zhuǎn)編碼,如將視頻H264轉(zhuǎn)H265等。

內(nèi)容中所提及的代碼都會(huì)放在GitHub,感興趣的小伙伴可以到GitHub下載。

我們按這樣的順序展開(kāi)討論:?

1、??編碼的作用?

2、??轉(zhuǎn)編碼的工作原理

3、??編解碼器安裝?

4、??示例代碼講解?

編碼的作用

在前面《音視頻轉(zhuǎn)碼工作原理》中討論過(guò),一個(gè)視頻文件實(shí)質(zhì)上是分3層的,封裝、編碼、基礎(chǔ)數(shù)據(jù)。

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

編碼的作用是為了壓縮數(shù)據(jù),限制最終文件的大小。

選擇不同的編碼格式,更多是為了節(jié)省更多的存儲(chǔ)空間,或者為了擴(kuò)大客戶(hù)端的播放兼容性。

這里值得一提的是,編碼是需要區(qū)分音頻和視頻的,視頻的編碼器是不能壓縮音頻數(shù)據(jù)的,反之亦然。?

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享?

關(guān)于H264等視頻編碼格式的詳細(xì)說(shuō)明,可參考往期《H264》。

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

?

關(guān)AAC等音頻編碼格式的詳細(xì)說(shuō)明,可參考往期《AAC》

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

轉(zhuǎn)編碼的工作原理?

整個(gè)轉(zhuǎn)編碼的過(guò)程是?解封裝>>解碼>>編碼>>封裝。

將解封裝后的數(shù)據(jù)塊放到對(duì)應(yīng)的解碼器中,即可解壓縮成原始的視頻幀、音頻幀。

將原始幀放入目標(biāo)編碼器中,即可壓縮出對(duì)應(yīng)編碼格式的數(shù)據(jù)塊。

其中一個(gè)數(shù)據(jù)塊不一定是完整的一幀數(shù)據(jù)?一些封裝格式,可能幾個(gè)數(shù)據(jù)塊才能組成完整的一幀數(shù)據(jù)。

整個(gè)過(guò)程是流式的,循環(huán)往復(fù),直到處理完成。

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

這里需要特別說(shuō)明的是,編碼器、解碼器都是對(duì)應(yīng)編碼格式的,是特定的算法程序,是現(xiàn)成的

如h264轉(zhuǎn)h265,則解碼器使用h264的,編碼器使用h265的。

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

如果是直播的場(chǎng)景,可以選擇在封裝前加上時(shí)間間隔,請(qǐng)參考往期《重封裝》,?本期不作贅述。

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

補(bǔ)充說(shuō)明一下,轉(zhuǎn)編碼實(shí)際上只是換了一種編碼格式,可以對(duì)編碼器設(shè)置諸如碼率等影響壓縮效率的參數(shù),也可以設(shè)置諸如去除B幀等編碼格式特有的參數(shù)。

但是想要改變分辨率、幀率、采樣率等參數(shù)的話,則需要對(duì)原始幀數(shù)據(jù)進(jìn)行處理才行,關(guān)于這部分的詳細(xì)說(shuō)明,請(qǐng)關(guān)注下一期內(nèi)容。

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享?

編解碼器安裝

FFmpeg默認(rèn)情況下會(huì)包含一些編解碼器,可以使用命令查看FFmpeg支持的編解碼器。

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

如果需要對(duì)FFmpeg擴(kuò)展編解碼器的話,則需要先安裝對(duì)應(yīng)的編碼器/解碼器程序,然后修改FFmpeg編譯配置,并重新編譯安裝即可。

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

關(guān)于FFmpeg更詳細(xì)的說(shuō)明,可參考往期《FFmpeg》。

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

?

示例代碼講解?

轉(zhuǎn)編碼的示例代碼為trancode.cpp?,示例代碼是H264轉(zhuǎn)H265的。

原來(lái)轉(zhuǎn)封裝示例代碼基礎(chǔ)上,增加了初始、關(guān)閉編解碼器,循環(huán)處理數(shù)據(jù)中加入了解碼、編碼過(guò)程

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

在設(shè)置解碼器/編碼器timebase時(shí),F(xiàn)Fmpeg推薦設(shè)置為幀率的倒數(shù),但按我們的經(jīng)驗(yàn),這樣會(huì)有很多問(wèn)題,所以我們更推薦設(shè)置為統(tǒng)一的timebase。

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

?

在轉(zhuǎn)編碼過(guò)程中,需要在解碼前、編碼后,做一下timebase轉(zhuǎn)換?,才能保證視頻播放時(shí)不會(huì)過(guò)快或過(guò)慢。

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

?

?

在編碼/解碼時(shí),需要區(qū)分音頻/視頻,將數(shù)據(jù)放到對(duì)應(yīng)的編解碼器

另外,編碼/解碼實(shí)質(zhì)上是異步的,所以程序需要判斷是否取出數(shù)據(jù)再進(jìn)行下一步。

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

?

而且因?yàn)榫幗獯a異步處理的原因,且解編碼是需要花費(fèi)一定時(shí)間的,所以在讀取完視頻文件時(shí)?,編解碼器可能還存在未處理完的數(shù)據(jù)

所以在讀出完視頻文件后,還需要等待編解碼器處理完所有的數(shù)據(jù)才算處理結(jié)束。

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

總結(jié)

本期內(nèi)容的代碼已經(jīng)上傳Github,需要的朋友可以下載。

【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解,音視頻處理,音視頻處理,轉(zhuǎn)編碼,h264轉(zhuǎn)h265,FFmpeg,代碼分享

以上代碼講解只提及了重要的部分,代碼中含有更詳細(xì)的注釋說(shuō)明,里面有編譯運(yùn)行環(huán)境的搭建說(shuō)明,也提供了做好的docker容器。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-668282.html

到了這里,關(guān)于【音視頻處理】轉(zhuǎn)編碼H264 to H265,F(xiàn)Fmpeg,代碼分享講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • VCC-H266/X265/X264音視頻編碼開(kāi)源實(shí)現(xiàn)的編譯及測(cè)試

    VCC-H266/X265/X264音視頻編碼開(kāi)源實(shí)現(xiàn)的編譯及測(cè)試

    下載vs2019 下載鏈接 Visual Studio 2022 IDE - 適用于軟件開(kāi)發(fā)人員的編程工具 下載cmake【非必須,vs2019中帶有cmake,但是沒(méi)有界面】 下載鏈接 Download | CMake 設(shè)置環(huán)境變量Path 使用vs2019中內(nèi)置的cmake,需要先找到C:Program Files (x86)Microsoft Visual Studio2019ProfessionalCommon7IDECommonExtensionsMic

    2024年02月07日
    瀏覽(20)
  • vue中使用EasyPlayer播放監(jiān)控視頻HLS,H265、H264

    vue中使用EasyPlayer播放監(jiān)控視頻HLS,H265、H264

    1.使用npm下載依賴(lài) 2.將EasyPlayer-lib.min.js文件、EasyPlayer.wasm文件、libDecoder.wasm文件放置到public下 3.創(chuàng)建components,html代碼如下 4.使用props接收數(shù)據(jù) 5.在父組件中引入,傳遞props中的數(shù)據(jù)即可運(yùn)行即可

    2024年02月03日
    瀏覽(28)
  • wireshark提取視頻數(shù)據(jù)之RTP包中提取H264和H265

    wireshark提取視頻數(shù)據(jù)之RTP包中提取H264和H265

    在流媒體相關(guān)問(wèn)題分析時(shí),抓包分析是非常重要的手段,比如播放有碼流無(wú)圖像、流媒體協(xié)議對(duì)接問(wèn)題、碼流花屏卡頓等問(wèn)題,很多問(wèn)題都可以通過(guò)抓包然后分析包數(shù)據(jù)來(lái)定位出問(wèn)題,抓包最常用的工具是wireshark,其能從數(shù)據(jù)鏈路層、IP層、傳輸層、應(yīng)用層等各層進(jìn)行分析,

    2024年02月02日
    瀏覽(21)
  • 音視頻知識(shí):MPEG-4、H264、MP4、AAC之間的關(guān)系

    MPEG-4 一種編碼標(biāo)準(zhǔn)。是國(guó)際標(biāo)準(zhǔn)化組織 (ISO) 主要針對(duì)消費(fèi)類(lèi)應(yīng)用,已經(jīng)針對(duì)運(yùn)動(dòng)圖像壓縮定義的標(biāo)準(zhǔn)。MPEG(Moving Picture Experts Group)標(biāo)準(zhǔn)包括 MPEG1、MPEG2與 MPEG4。 MPEG-4標(biāo)準(zhǔn)目前分為27個(gè)部分,統(tǒng)稱(chēng)為ISO/IEC14496國(guó)際標(biāo)準(zhǔn)。其中第10部分(ISO/IEC 14496-10)就是熟悉的高級(jí)視頻編碼

    2024年02月14日
    瀏覽(40)
  • Linux Qt5.15.2 編譯QWebEngine源碼支持音視頻H264

    Linux Qt5.15.2 編譯QWebEngine源碼支持音視頻H264

    默認(rèn)自帶的QWebEngine 因版權(quán)問(wèn)題不支持音視頻功能,需要自己編譯源碼以支持。 平臺(tái):Linux(UOS V20 1050) Qt:5.15.2 下載 Qt 5.15.2 對(duì)應(yīng)版本源碼,使用鏡像網(wǎng)站或者Qt Maintenance Tool工具下載。 配置 Qt 環(huán)境變量 將以下內(nèi)容追加到bashrc文件后 刷新使其生效 這個(gè)階段可以預(yù)先安裝所

    2024年02月05日
    瀏覽(50)
  • 音視頻八股文(9)-- flv的h264六層結(jié)構(gòu)和aac六層結(jié)構(gòu)

    音視頻八股文(9)-- flv的h264六層結(jié)構(gòu)和aac六層結(jié)構(gòu)

    FLV(Flash Video)是Adobe公司推出的?種流媒體格式,由于其封裝后的?視頻?件體積?、封裝簡(jiǎn)單等特點(diǎn),?常適合于互聯(lián)?上使?。?前主流的視頻?站基本都?持FLV。采?FLV格式封裝的?件后綴為.flv。 FLV封裝格式是由?個(gè)?件頭(file header)和 ?件體(file Body)組成。其中,F(xiàn)LV

    2024年02月01日
    瀏覽(28)
  • SkeyeRTMPClient擴(kuò)展支持HEVC(H.265)解決方案之兼容H264和H265幀數(shù)據(jù)解析詳解

    SkeyeRTMPClient擴(kuò)展支持HEVC(H.265)解決方案之兼容H264和H265幀數(shù)據(jù)解析詳解

    在之前兩篇關(guān)于SkeyeRTMPClient擴(kuò)展支持HEVC(H.265)解決方案的文章中,我們已經(jīng)完成了對(duì)H265的支持,本文主要闡述將H26和H265支持兼容起來(lái),實(shí)現(xiàn)不同視頻編碼格式的自適應(yīng)兼容適配。 1. 根據(jù)CodecId判斷數(shù)據(jù)編碼類(lèi)型 根據(jù)視頻編碼ID判斷視頻編碼類(lèi)型,如果視頻編碼ID==FlvCodeId_Hevc(

    2023年04月08日
    瀏覽(15)
  • 微信小程序支持h5實(shí)現(xiàn)webrtc h264 h265低延遲傳輸渲染

    微信小程序支持h5實(shí)現(xiàn)webrtc h264 h265低延遲傳輸渲染

    微信小程序自成體系,自身也帶了很強(qiáng)的rtc音視頻能力,但是他捆綁了他自己的服務(wù),開(kāi)發(fā)也相對(duì)受限于他的api?;谝郧暗牧私饪梢圆蓋ebview的方式內(nèi)嵌h5網(wǎng)址來(lái)實(shí)現(xiàn)自定義的webrtc.但實(shí)踐起來(lái)并不輕松,主要是小程序的嚴(yán)格限制,各平臺(tái)的兼容,不得不使出吃奶的力氣來(lái)實(shí)現(xiàn)

    2024年02月04日
    瀏覽(25)
  • 音視頻開(kāi)發(fā) RTMP協(xié)議發(fā)送H.264編碼及AAC編碼的音視頻(C++實(shí)現(xiàn))

    音視頻開(kāi)發(fā) RTMP協(xié)議發(fā)送H.264編碼及AAC編碼的音視頻(C++實(shí)現(xiàn))

    RTMP(Real Time Messaging Protocol)是專(zhuān)門(mén)用來(lái)傳輸音視頻數(shù)據(jù)的流媒體協(xié)議,最初由Macromedia 公司創(chuàng)建,后來(lái)歸Adobe公司所有,是一種私有協(xié)議,主要用來(lái)聯(lián)系Flash Player和RtmpServer,如 FMS , Red5 , crtmpserver 等。RTMP協(xié)議可用于實(shí)現(xiàn)直播、點(diǎn)播應(yīng)用,通過(guò) FMLE(Flash Media Live Encoder) 推送音

    2023年04月08日
    瀏覽(28)
  • Qt/C++音視頻開(kāi)發(fā)69-保存監(jiān)控pcm音頻數(shù)據(jù)到mp4文件/監(jiān)控錄像/錄像存儲(chǔ)和回放/264/265/aac/pcm等

    用ffmpeg做音視頻保存到mp4文件,都會(huì)遇到一個(gè)問(wèn)題,尤其是在視頻監(jiān)控行業(yè),就是監(jiān)控?cái)z像頭設(shè)置的音頻是PCM/G711A/G711U,解碼后對(duì)應(yīng)的格式是pcm_s16be/pcm_alaw/pcm_mulaw,將這個(gè)原始的音頻流保存到mp4文件是會(huì)報(bào)錯(cuò)的,在調(diào)用avformat_write_header寫(xiě)文件頭的時(shí)候提示(-22) Invalid argument,

    2024年04月11日
    瀏覽(37)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包