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

第7課 利用FFmpeg將攝像頭畫面與麥克風(fēng)數(shù)據(jù)合成后推送到rtmp服務(wù)器

這篇具有很好參考價(jià)值的文章主要介紹了第7課 利用FFmpeg將攝像頭畫面與麥克風(fēng)數(shù)據(jù)合成后推送到rtmp服務(wù)器。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

上節(jié)課我們已經(jīng)拿到了攝像頭數(shù)據(jù)和麥克風(fēng)數(shù)據(jù),這節(jié)課我們來(lái)看一下如何將二者合并起來(lái)推送到rtmp服務(wù)器。推送音視頻合成流到rtmp服務(wù)器地址的流程如下:

1.創(chuàng)建輸出流

//初始化輸出流上下文
avformat_alloc_output_context2(&outFormatCtx, NULL, "flv", outFileName);
outFormat = outFormatCtx->oformat;
outFormat->video_codec = AV_CODEC_ID_H264;
outFormat->audio_codec = AV_CODEC_ID_AAC;

2.創(chuàng)建視頻編碼器

vEncodec = avcodec_find_encoder(AV_CODEC_ID_H264);
vEncodeCtx = avcodec_alloc_context3(vEncodec);
vEncodeCtx->codec_id = vEncodec->id;
vEncodeCtx->codec_type = AVMEDIA_TYPE_VIDEO;
vEncodeCtx->bit_rate = 1000000;
vEncodeCtx->width = backWidth;
vEncodeCtx->height = backHeight;
vEncodeCtx->time_base = { 1, 25 };
vEncodeCtx->framerate = { 25, 1 };
vEncodeCtx->gop_size = 25 * 10;
vEncodeCtx->pix_fmt = *vEncodec->pix_fmts;
vEncodeCtx->max_b_frames = 0;
vEncodeCtx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
av_dict_set(&vEncodeOpts, "profile", "baseline", 0);
av_dict_set(&vEncodeOpts, "preset", "ultrafast", 0);
av_dict_set(&vEncodeOpts, "tune", "zerolatency", 0);
avcodec_open2(vEncodeCtx, vEncodec, &vEncodeOpts);

3.創(chuàng)建音頻編碼器

//音頻編碼器
aEncodec = avcodec_find_encoder(AV_CODEC_ID_AAC);;
aEncodeCtx = avcodec_alloc_context3(aEncodec);
aEncodeCtx->bit_rate = 64000;
aEncodeCtx->sample_rate = 44100;
aEncodeCtx->block_align = 0;
aEncodeCtx->sample_fmt = AV_SAMPLE_FMT_FLTP;
aEncodeCtx->channel_layout = AV_CH_LAYOUT_STEREO;
aEncodeCtx->channels = 2;
aEncodeCtx->time_base.num = 1;
aEncodeCtx->time_base.den = aEncodeCtx->sample_rate;

aEncodeCtx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
avcodec_open2(aEncodeCtx, aEncodec, NULL);

4.創(chuàng)建輸出視頻流

//創(chuàng)建輸出視頻流
videoStream = avformat_new_stream(outFormatCtx, vEncodec);
videoStream->id = outFormatCtx->nb_streams - 1;
videoStream->codecpar->codec_tag = 0;
avcodec_parameters_from_context(videoStream->codecpar, vEncodeCtx);

5.創(chuàng)建輸出音頻流

//創(chuàng)建輸出音頻流
audioStream = avformat_new_stream(outFormatCtx, NULL);
audioStream->codecpar->codec_tag = 0;
audioStream->id = outFormatCtx->nb_streams - 1;
avcodec_parameters_from_context(audioStream->codecpar, aEncodeCtx);

6.打開輸出流并寫入文件頭

//打開輸出流
av_dump_format(outFormatCtx, 0, outFileName, 1);
ret = avio_open2(&outFormatCtx->pb, outFileName, AVIO_FLAG_READ_WRITE, nullptr, nullptr);

//寫文件頭
ret = avformat_write_header(outFormatCtx, NULL);

7.分別封裝音視頻幀并送入編碼器

ret = avcodec_send_frame(vEncodeCtx, deVideoFrame);
ret = avcodec_receive_packet(vEncodeCtx, &enVideoPacket);

ret = avcodec_send_frame(aEncodeCtx, deAudioFrame);
ret = avcodec_receive_packet(aEncodeCtx, &enAudioPacket);

8.分別推送音視頻流

if (enVideoPacket.size > 0){
 ret = av_interleaved_write_frame(outFormatCtx, &enVideoPacket);				
}

if (enAudioPacket.size > 0){
 ret = av_interleaved_write_frame(outFormatCtx, &enAudioPacket);				
}

9.播放測(cè)試rtmp流

打開vlc或第一章寫好的rtmp播放器測(cè)試,對(duì)著麥克風(fēng)說(shuō)話如果能從播放器聽到聲音并看到圖像說(shuō)明成功。

第7課 利用FFmpeg將攝像頭畫面與麥克風(fēng)數(shù)據(jù)合成后推送到rtmp服務(wù)器,opencv,C++,ffmpeg,ffmpeg,c++,音視頻,opencv文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-774928.html

到了這里,關(guān)于第7課 利用FFmpeg將攝像頭畫面與麥克風(fēng)數(shù)據(jù)合成后推送到rtmp服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(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)文章

  • web端調(diào)用本地?cái)z像頭麥克風(fēng)+WebRTC騰訊云,實(shí)現(xiàn)直播功能

    web端調(diào)用本地?cái)z像頭麥克風(fēng)+WebRTC騰訊云,實(shí)現(xiàn)直播功能

    視頻直播技術(shù)大全、直播架構(gòu)、技術(shù)原理和實(shí)現(xiàn)思路方案整理 視頻采集端: 1、視頻采集:使用攝像頭設(shè)備獲取實(shí)時(shí)視頻流。 2、視頻處理: 對(duì)采集到的視頻進(jìn)行處理,可以包括美顏、濾鏡、水印等效果的添加。 3、音視頻編碼壓縮: 將處理后的音視頻數(shù)據(jù)進(jìn)行編碼壓縮,常

    2024年02月10日
    瀏覽(24)
  • 如何讓Chrome瀏覽器允許http網(wǎng)站打開攝像頭和麥克風(fēng)

    如何讓Chrome瀏覽器允許http網(wǎng)站打開攝像頭和麥克風(fēng)

    問(wèn)題來(lái)源: 本地運(yùn)行的項(xiàng)目調(diào)用攝像頭好用 訪問(wèn)線上地址,發(fā)現(xiàn)調(diào)用攝像頭的方法都不存在。 問(wèn)了度娘,發(fā)現(xiàn)該問(wèn)題與瀏覽器的安全策略有關(guān)。出于安全考慮,瀏覽器是不允許隨便開啟攝像頭的,https協(xié)議下方可開啟。 這一項(xiàng)功能要用到谷歌瀏覽器的實(shí)驗(yàn)性功能,谷歌瀏覽

    2024年02月17日
    瀏覽(96)
  • MacOS 為指定應(yīng)用添加指定權(quán)限(瀏覽器無(wú)法使用攝像頭、麥克風(fēng)終極解決方案)

    MacOS 為指定應(yīng)用添加指定權(quán)限(瀏覽器無(wú)法使用攝像頭、麥克風(fēng)終極解決方案)

    起因:需要瀏覽器在線做一些測(cè)評(píng),但我的 Chrome 沒(méi)有攝像頭/麥克風(fēng)權(quán)限,并且在設(shè)置中是沒(méi)有手動(dòng)添加按鈕的。 我嘗試了重裝軟件,更新系統(tǒng)(上面的 13.5 就是這么來(lái)的,我本來(lái)都半年懶得更新系統(tǒng)了),都沒(méi)有任何用。 系統(tǒng)版本:MacOS 13.5.1(需要開啟 sip,可參考 macOS

    2024年02月07日
    瀏覽(22)
  • c 攝像頭利用v4l2直接生成avi視頻(不利用ffmpeg)

    自定義avi結(jié)構(gòu)頭文件?,F(xiàn)在不能實(shí)時(shí)顯示攝像頭畫面,準(zhǔn)備參照f(shuō)im(終端中顯示圖片),直接對(duì)顯示framebuffer操作,顯示視頻。不用qt等。 生成的視頻根據(jù)機(jī)子的性能不同,詁計(jì)要手動(dòng)調(diào)一下生成視頻的幀率。 播放: $ aplay ?musicdemo.wmv 錄音: $ arecord -c 2 -r 44100 -f S16_LE musicd

    2024年02月08日
    瀏覽(21)
  • javacv基礎(chǔ)02-調(diào)用本機(jī)攝像頭并預(yù)覽攝像頭圖像畫面視頻

    javacv基礎(chǔ)02-調(diào)用本機(jī)攝像頭并預(yù)覽攝像頭圖像畫面視頻

    引入架包: 運(yùn)行效果: 注意: 1、maven依賴后,會(huì)導(dǎo)致整個(gè)項(xiàng)目工程打包發(fā)布后的體積變得十分巨大 原因是ffmpeg和opencv兩個(gè)依賴默認(rèn)會(huì)把a(bǔ)ndroid,ios,linux,macos,windows以及各自不同cpu芯片下,86/64等所有版本的Jar會(huì)全部依賴進(jìn)來(lái),項(xiàng)目打包后體積劇增500M+ 解決方法也比較簡(jiǎn)單

    2024年02月11日
    瀏覽(31)
  • 攝像頭畫面作為電腦桌面背景

    攝像頭畫面作為電腦桌面背景

    1. 創(chuàng)建文件main.pyw,文件內(nèi)容 2. 創(chuàng)建文件requirements.txt,文件內(nèi)容 3. 安裝依賴 4. 運(yùn)行 雙擊main.pyw 防火布 github下載代碼 從上面第3步開始執(zhí)行

    2024年02月03日
    瀏覽(22)
  • ??將大華攝像頭畫面接入U(xiǎn)nity 【1】配置硬件和初始化攝像頭

    ??將大華攝像頭畫面接入U(xiǎn)nity 【1】配置硬件和初始化攝像頭

    目前的設(shè)想是后期采用網(wǎng)口供電的形式把畫面?zhèn)鞒鰜?lái),所以這邊我除了大華攝像頭還準(zhǔn)備了POE供電交換機(jī),為了方便索性都用大華的了,然后全都連接電腦主機(jī)即可。 這邊初始化攝像頭需要用到大華的Configtool軟件,下載地址如下。 全部-浙江大華技術(shù)股份有限公司 (dahuatech

    2024年02月21日
    瀏覽(20)
  • 為什么監(jiān)控?cái)z像頭畫面不如手機(jī)拍攝視頻畫面清晰

    一天和一個(gè)做餐飲的朋友吃飯聊天,他提出一個(gè)問(wèn)題,幾百塊的監(jiān)控?cái)z像頭就是純粹做監(jiān)控功能 ,視頻拍攝的畫面為什么還沒(méi)有幾百元的手機(jī)拍攝的視頻畫面清晰,對(duì)于此特意查了一下技術(shù)資料,整理一下,以備下次再詳細(xì)忽悠! 當(dāng)我們看到監(jiān)控?cái)z像頭的畫面與手機(jī)拍攝視

    2024年02月01日
    瀏覽(25)
  • 如何獲取當(dāng)前攝像頭實(shí)時(shí)畫面(或說(shuō)圖片)

    可以使用所在平臺(tái)提供的攝像頭接口或第三方庫(kù)來(lái)獲取當(dāng)前攝像頭實(shí)時(shí)畫面(或圖片),具體實(shí)現(xiàn)方式可能因不同平臺(tái)和庫(kù)而異。以下是幾個(gè)常見(jiàn)平臺(tái)的示例方法: 在 Windows 平臺(tái)上,可以使用 DirectShow 或 Media Foundation API 獲取攝像頭實(shí)時(shí)畫面。 在 macOS 平臺(tái)上,可以使用 AVFo

    2024年02月10日
    瀏覽(18)
  • 消除Python OpenCV顯示攝像頭畫面的延遲

    消除Python OpenCV顯示攝像頭畫面的延遲

    用 Python 通過(guò) OpenCV顯示攝像頭畫面時(shí),如果對(duì)視頻幀進(jìn)行一些處理,常常會(huì)遇到一個(gè)問(wèn)題,顯示的畫面比眼睛看到真實(shí)場(chǎng)景慢幾秒甚至更多,給用戶的體驗(yàn)不好。 畫面延遲與卡頓的區(qū)別 卡頓 是指視頻播放時(shí),出現(xiàn)一頓一頓的現(xiàn)象,不流暢,通常每秒播放速率少于10幀就可以

    2024年02月11日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包