原创 ffmpeg av_seek_frame操作難點

轉載 1、難點 seek 操作 2、ffmpeg AVIOContext 自定義 IO 及 seek 摘錄: 1、 2、

原创 ONVIF獲取265的rtsp地址,ptz控制記錄

1、獲取url、ptz或imaging的一般流程 《1》、注意   GetCapabilities是向下兼容的接口只能獲取到設備支持的最基本功能。GetServices接口能獲取到設備支持的所有功能,H265格式的RTSP地址的

原创 libresamplerate及speexdsp兩個音頻重採樣庫使用

  記錄libsamplerate及speex庫進行音頻重採樣的使用。主要是將 48K HZ 16bit採樣率,雙通道PCM音頻轉爲8K HZ,16bit採樣率單通道PCM音頻。 一、libsamplerate 1、SRC_DAT

原创 C++ shared_ptr自定義刪除器類

1、智能指針刪除器類 因爲用自己實現的內存池在釋放內存時需要buffer的大小纔可以,用函數和labda表達式不知道如何實現,所以用刪除器類實現自定義的智能指針刪除器。 /* 智能指針刪除器類 */ class CustomerD

原创 libcurl Multi異步接口使用

1、multi異步接口實現文件上傳demo 《1》、設置easy接口 #include <curl/curl.h> #include <curl/multi.h> /* mutil 句柄的最大連接數 */ #define MA

原创 libcurl post二進制文件及GET下載文件

使用的版本curlcurl-7.69.1 使用的easy接口 1、二進制方式POST圖片 CURL *curl; CURLcode res; curl = curl_easy_init(); if(curl) { curl_e

原创 linux mount函數nfs掛載

1、使用linux的mout函數掛載 #include <stdio.h> #include <sys/mount.h> #include <errno.h> #include <unistd.h> #include <sys/s

原创 linux exec函數執行之前設置當前進程所有描述符FD_CLOEXEC

1、查看進程打開的描述符 ll /proc/$PID/fd 2、C語言獲取當前進程打開的fd並設置FD_CLOEXEC #include <stdio.h> #include <errno.h> #include <unist

原创 H264或HEVC及AAC音頻的PS流打包

1、使用libmpeg 使用libmpeg庫完成PS流格式封裝,對於GB28181音頻封裝修改libmepg代碼,使音頻不帶PS頭。該庫支持PS/TS流的封包及解包。 2、demo 《1》、封裝類 /* ps封裝類 */ clas

原创 jsoncpp構建及解析複雜數組

1、示例的json格式 2、測試代碼 使用的版本jsonjson_0.10.7 void test_video_list() { Json::Value root; Json::Value calss_info;

原创 cmake編譯本目錄所有文件

目錄結構如下: 示例如下: cmake_minimum_required(VERSION 2.8) project(FILTER_SERVER) #設置編譯器 set(CMAKE_C_COMPILER g++) #添加編譯選項

原创 轉--ffmpeg改變音視頻播放速率

1、How to speed up/slow down a video 2、語音變速變調原理博客 《1》、變調和變速原理 《2》、https://blog.csdn.net/wkw1125/article/details/638

原创 基於librtmp客戶端記錄(H264+AAC)

  基於librtmp開發rtmp客戶端的demo,主要是按照雷神的demo(見5.1)來修改,修改後的demo能將獲取到的音視頻數據寫成h264文件及aac文件。 1、flv格式   介紹flv格式的博客有很多,個人覺得5.2及

原创 AAC與PCM轉化--libfaac及libfdk-aac使用

1、AAC的兩種編碼格式 《1》、ADTS格式   ADTS頭包含了AAC文件的採樣率、通道數、幀數據長度等信息,分爲固定頭信息和可變頭信息兩部分。 ADTS頭一般是7個字節(28bit+28bit)/8,若ADTS頭的 pro

原创 centos上TURN服務器搭建及測試

騰訊雲公網ip:106.54.xxx.xxx 騰訊雲內網ip:172.17.0.14 自己電腦IP:192.168.179.133 1、配置文件 cp /usr/local/etc/turnserver.conf.default