原创 轉!!!!!狀態模式

原文鏈接:https://blog.csdn.net/wuzhekai1985/article/details/6675799 狀態模式:允許一個對象在其內部狀態改變時改變它的行爲。對象看起來似乎修改了它的類。它有兩種使用情況:(1)一個

原创 我自己需要看的面向對象設計思想

三大特性: 封裝,繼承,多態。 原則; 單一職責原則 開放-封閉原則:開放---->軟件可以擴展,封閉------>但是原有代碼不可修改。 依賴倒轉原則:高層模塊不應該依賴底層模塊,兩個都應該依賴抽象。抽象不應該依賴細節,細節應該依賴抽象

原创 轉!!!!!觀察者模式

原文參考書籍《大話設計模式》。 代碼參考鏈接:https://blog.csdn.net/wuzhekai1985/article/details/6674984 觀察者模式: 定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主

原创 轉!!!!!裝飾模式

文章參考書籍《大話設計模式》 代碼直接用博客鏈接的代碼:https://blog.csdn.net/liang19890820/article/details/66973836 裝飾模式: 1.動態地給一個對象添加一些額外的職責,就增加功

原创 轉!!!!!!模板模式

文章參考書籍《大話設計模式》。 代碼參考鏈接:https://blog.csdn.net/wuzhekai1985/article/details/6667020 模板模式: 1.定義一個操作中的算法骨架(流程),然後將某些一部分的接口由

原创 轉!!!!!單例模式

原文鏈接:https://blog.csdn.net/hechao3225/article/details/71366058 作用:保證一個類只有一個實例,並提供一個訪問它的全局訪問點,使得系統中只有唯一的一個對象實例。 應用:常用於管理

原创 轉!!!!策略模式

部分參考原文鏈接:https://blog.csdn.net/lh844386434/article/details/16825861 策略模式也是一種非常常用的設計模式,而且也不復雜。下面我們就來看看這種模式。   定義:策略模式定義了

原创 轉!!!!!工廠模式

本文部分轉載於https://blog.csdn.net/hechao3225/article/details/71366058 工廠模式包括三種:簡單工廠模式、工廠方法模式、抽象工廠模式。 工廠模式的主要作用是封裝對象的創建,分離對象的

原创 轉!!!!!!音視頻同步

原文章鏈接https://blog.csdn.net/liuweihui521/article/details/87967298 本文主要描述瞭如何以音頻的播放時長爲基準,將視頻同步到音頻上以實現視音頻的同步播放的。主要有以下幾個方面的內

原创 記錄下網絡上FFMPEG對於時間戳的處理方法

注:文章都是在網上收集的,由於觀看的原文章中都沒有標註原鏈接,如果有原作者不許可,可聯繫我刪除。 一、音視頻同步 DTS(解碼時間戳)和PTS(顯示時間戳) 當我們調用av_read_frame()得到一個包的時候,PTS和DTS的信息也

原创 轉!!!啓動FFmpeg.exe進程完成通過命令行可以實現的功能

https://blog.csdn.net/zhoubotong2012/article/details/79343846 FFmpeg的功能很強大,包含編碼,解碼,各種輸入輸出格式的處理,但是使用它的API來實現功能有點困難,有沒有更簡

原创 FFMPEG幀率設置總結

正常情況下可以通過AVCodecContext結構體中的time_base來設置幀率,如下設置幀率30 AVCodecContext* pVideoCtx = avcodec_alloc_context3(video_encoder);

原创 FFMPEG採集麥克風並AAC編碼保存文件

先說下具體大體流程: 1. 打開輸入文件(這裏把攝像頭當作一個輸入文件),需要用到的函數如下 1)av_find_input_format() //如果是打開麥克風或者屏幕需要增加 2)avformat_open_input()/a

原创 FFMPEG轉碼文件大小異常及播放模糊原因排查總結

最近花了兩天來研究轉碼,具體步驟是把輸入文件->解碼->編碼->輸出文件,發現輸出文件遠比輸入文件小很多。打開視頻模糊的很,如下圖: 後來發現是因爲在初始化編碼器的時候設置錯了bit_rate這個參數導致的,因爲不知道該設置什麼參數,所以

原创 FFMPEG編碼生成的MP4文件播放速度很快原因分析

個人覺得ffmpeg中的難點在於音視頻的同步以及時間戳,這個時間戳不僅僅說是你通過av_rescale_q_rnd函數來獲取就可以處理的了的,有時候格式不一樣,出現的問題也是不同的。比如今天我就碰到了這個問題,我先用av_rescale_