原创 使用ffmpeg解碼並把解碼後的yuv數據傳遞給media硬編碼所用的mfxFrameSurface1結構體

下面的部分代碼記錄 /* *m_pEncSurfaces = new mfxFrameSurface1[4],4對應着EncodeParams結構體裏nAsyncDepth值 *分配好Y,U,V的內存 */

原创 windows下的__s_onexit_pause關鍵字可以不用定義類直接就調用類的構造函數

文章內容是我自己遇到的問題總結出來的,不一定正確,望指正。 我定義一個類,並且在其後添加__s_onexit_pause關鍵字,那麼程序會自動運行類的構造函數。如下代碼: class OnApp { public: OnApp()

原创 什麼叫網絡抖動

本文爲方便以後自己記憶記錄,如有問題,請指正。 網絡抖動: 網上說法是指網絡中的延遲是指信息從發送到接收經過的延遲時間,一般由傳輸延遲及處理延遲組成; 而抖動是指最大延遲與最小延遲的時間差,如最大延遲是20毫秒,最小延遲爲5毫秒,那麼網絡

原创 使用ffmpeg推流rtsp,用vlc播放黑屏,但是編碼數據保存264文件能正常播放原因彙總

原因一:項目中使用cuda編碼,然後用ffmpeg推流rtsp,用vlc播放rtsp鏈接,發現播放黑屏,然後把編碼數據保存264文件,用vlc打開能夠正常播放。 解決一:UltraEdit打開264文件,如下圖 從圖中可以看出00 00

原创 轉!!!!Intel media SDK h264編碼去除多餘信息(如分界符,sps等)

原文鏈接https://blog.jianchihu.net/intel-media-sdk-remove-unused.html。 使用Intel media SDK硬編碼H264數據時,生成的每一幀H264數據都包含Access un

原创 使用Intel media SDK h264編碼後的數據幀分析及用vlc播放不出原因分析

使用Intel media SDK硬編碼H264數據然後保存成264文件,用vlc播放失敗。 默認編碼是第一幀有IDR幀,後續都沒有I幀,這裏打開保存的264文件分析數據幀時發現其數據幀如下   從上圖中可以看到,第一個00 00 0

原创 移植ffmpeg到jz2440(在開發板運行出現Illegal instruction,已解決,問題總結)

一,先編譯x264,參考文章移植X264到JZ2440開發板。 二,配置 ./configure --prefix=/home/book/ffmpeg/ffmpeg-arm --arch=armel --target-os=linux

原创 視頻幀數據用硬件編碼輸出,僅僅使用FFMPEG將硬件編碼出的數據推流RTSP數據後嚴重花屏且畫面卡住不動

由於使用的是其他硬件編碼器出來的數據,所以不再是使用av_read_frame來獲取AVPacket包了,所以在輸出編碼數據的回調接口裏寫僞代碼如下: //相當於初始化AVPacket包 AVPacket* tmp = (AVPa

原创 ffmpeg使用問題記錄

1.正常情況下一個封裝好的視頻文件,例如mp4或者mkv文件,其音頻數據是經過了aac編碼器編碼的(如果是其他的編碼器,那麼提取的數據格式要和編碼器一致),其視頻數據是經過了h264編碼器編碼的,這時候如果你僅僅是提取出數據的話,音頻文件

原创 關於使用智能指針對降低ffmpeg延時的測試

這是使用智能指針的代碼,轉發rtspliu流用vlc播放,延時幾乎沒有 #include "stdafx.h" #include "pch.h" #include <string> #include <memory> #include

原创 av_read_frame獲取到AVPacket數據包AV_INPUT_BUFFER_PADDING_SIZE值和輸入文件AVCodecContext的extradata值研究

AVPacket pkt; av_init_packet(&pkt); // 初始化pkt pkt.data = NULL; pkt.size = 0; //fmt_ctx爲輸入文件的AVFormatContext指針 av_

原创 linux內核模擬pwm信號控制舵機

需要用到的知識點: A)linux內核延時函數,這裏參考文章https://www.cnblogs.com/Ph-one/p/4678361.html #include <linux/delay.h> 1、void ndelay(uns

原创 使用C++11 thread創建線程出現的問題總結

出現錯誤如下: 1.C2672 std::invoke”: 未找到匹配的重載函數 2.未能使函數模板“unknown-type std::invoke(_Callable &&,_Types &&...) noexcept(<expr

原创 使用LIVE555保存264文件,用vlc播放失敗

live555中testProgs文件有兩個測試程序可以用來保存文件,分別是playCommon.cpp和testRTSPclient.cpp。 先來看testRTSPclient.cpp保存264文件的代碼 void DummySin

原创 STL的容器分類及使用場景

原文鏈接:https://blog.csdn.net/qq_33511280/article/details/62223432 原文鏈接:https://www.cnblogs.com/panlangen/p/8075766.html 第