資源簡介
本資源是通過opencv 采集攝像頭圖像(bgr24圖像格式),使用libx264將(bgr24)圖像編碼為h264視頻編碼格式。開發(fā)環(huán)境位vs2013.
詳情請參考博客:http://blog.csdn.net/qq_21193563/article/details/78692908

代碼片段和文件信息
//?bolgLibx264.cpp?:?定義控制臺應用程序的入口點。
//
#include?“stdafx.h“
#include?
#include?
#include?
#if?defined?(?__cplusplus)
extern?“C“
{
#include?
#include?“x264.h“
};
#else
#include?“x264.h“
#endif
using?namespace?std;
using?namespace?cv;
#define?WIDTH?640
#define?HEIGHT?480
#define?VENC_FPS?30
typedef?struct?__X264_ENCODER__
{
x264_t*?m_pX264Handle;
x264_param_t*?m_pX264Param;
x264_picture_t*?m_pX264Pic_out;
x264_picture_t*?m_pX264Pic_in;
x264_nal_t*?m_pX264Nals;
int?m_x264iNal;
FILE?*m_x264Fp;
}X264Encoder;
void?initX264Encoder(X264Encoder?&x264Encoderchar?*filePath)
{
x264Encoder.m_x264Fp?=?fopen(filePath?“wb“);
x264Encoder.m_pX264Param?=?(x264_param_t?*)malloc(sizeof(x264_param_t));
assert(x264Encoder.m_pX264Param);
x264_param_default(x264Encoder.m_pX264Param);
x264_param_default_preset(x264Encoder.m_pX264Param?“veryfast“?“zerolatency“);
x264_param_apply_profile(x264Encoder.m_pX264Param?“baseline“);
x264Encoder.m_pX264Param->i_threads?=?X264_THREADS_AUTO;//X264_SYNC_LOOKAHEAD_AUTO;?//?取空緩沖區(qū)繼續(xù)使用不死鎖的保證
//?視頻選項
x264Encoder.m_pX264Param->i_width?=?WIDTH;?//?要編碼的圖像寬度.
x264Encoder.m_pX264Param->i_height?=?HEIGHT;?//?要編碼的圖像高度
//?幀率
x264Encoder.m_pX264Param->b_vfr_input?=?0;//0時只使用fps控制幀率
int?m_frameRate?=?VENC_FPS;
x264Encoder.m_pX264Param->i_fps_num?=?m_frameRate;?//?幀率分子
x264Encoder.m_pX264Param->i_fps_den?=?1;?//?幀率分母
x264Encoder.m_pX264Param->i_timebase_den?=?x264Encoder.m_pX264Param->i_fps_num;
x264Encoder.m_pX264Param->i_timebase_num?=?x264Encoder.m_pX264Param->i_fps_den;
x264Encoder.m_pX264Param->b_intra_refresh?=?0;
x264Encoder.m_pX264Param->b_annexb?=?1;
//m_pX264Param->b_repeat_headers?=?0;
x264Encoder.m_pX264Param->i_keyint_max?=?m_frameRate;
x264Encoder.m_pX264Param->i_csp?=?X264_CSP_BGR;//X264_CSP_I420;//?
x264Encoder.m_pX264Param->i_log_level?=?X264_LOG_INFO;//X264_LOG_DEBUG;
x264Encoder.m_x264iNal?=?0;
x264Encoder.m_pX264Nals?=?NULL;
x264Encoder.m_pX264Pic_in?=?(x264_picture_t?*)malloc(sizeof(x264_picture_t));
if?(x264Encoder.m_pX264Pic_in?==?NULL)
exit(1);
else
memset(x264Encoder.m_pX264Pic_in?0?sizeof(x264_picture_t));
//x264_picture_alloc(m_pX264Pic_in?X264_CSP_I420?m_pX264Param->i_width?m_pX264Param->i_height);
x264_picture_alloc(x264Encoder.m_pX264Pic_in?X264_CSP_BGR?x264Encoder.m_pX264Param->i_width?x264Encoder.m_pX264Param->i_height);
x264Encoder.m_pX264Pic_in->i_type?=?X264_TYPE_AUTO;
x264Encoder.m_pX264Pic_out?=?(x264_picture_t?*)malloc(sizeof(x264_picture_t));
if?(x264Encoder.m_pX264Pic_out?==?NULL)
exit(1);
else
memset(x264Encoder.m_pX264Pic_out?0?sizeof(x264_picture_t));
x264_picture_init(x264Encoder.m_pX264Pic_out);
x264Encoder.m_pX264Handle?=?x264_encoder_open(x264Encoder.m_pX264Param);
assert(x264Encoder.m_pX264Handle);
}
void?convertframeToX264Img(x264_image_t?*x264InImgMat?&frame)
{
//RGB方式
int?srcSize
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-12-02?10:43??bolgLibx264\
?????目錄???????????0??2017-12-02?10:34??bolgLibx264\bolgLibx264\
?????文件????17104896??2017-12-02?10:43??bolgLibx264\bolgLibx264.sdf
?????文件?????????979??2017-12-02?09:35??bolgLibx264\bolgLibx264.sln
?????文件???????20480??2017-12-02?10:43??bolgLibx264\bolgLibx264.v12.suo
?????文件????????4688??2017-12-02?10:34??bolgLibx264\bolgLibx264\bolgLibx264.cpp
?????文件????????4653??2017-12-02?10:27??bolgLibx264\bolgLibx264\bolgLibx264.vcxproj
?????文件????????1318??2017-12-02?09:35??bolgLibx264\bolgLibx264\bolgLibx264.vcxproj.filters
?????目錄???????????0??2017-12-02?10:34??bolgLibx264\bolgLibx264\Debug\
?????文件????????3042??2017-12-02?10:34??bolgLibx264\bolgLibx264\Debug\bolgLibx264.log
?????文件??????281763??2017-12-02?10:34??bolgLibx264\bolgLibx264\Debug\bolgLibx264.obj
?????文件?????1638400??2017-12-02?09:41??bolgLibx264\bolgLibx264\Debug\bolgLibx264.pch
?????目錄???????????0??2017-12-02?10:34??bolgLibx264\bolgLibx264\Debug\bolgLibx264.tlog\
?????文件?????????160??2017-12-02?10:34??bolgLibx264\bolgLibx264\Debug\bolgLibx264.tlog\bolgLibx264.lastbuildstate
?????文件????????1434??2017-12-02?10:34??bolgLibx264\bolgLibx264\Debug\bolgLibx264.tlog\cl.command.1.tlog
?????文件???????23016??2017-12-02?10:34??bolgLibx264\bolgLibx264\Debug\bolgLibx264.tlog\CL.read.1.tlog
?????文件????????1030??2017-12-02?10:34??bolgLibx264\bolgLibx264\Debug\bolgLibx264.tlog\CL.write.1.tlog
?????文件????????2940??2017-12-02?10:34??bolgLibx264\bolgLibx264\Debug\bolgLibx264.tlog\li
?????文件????????7352??2017-12-02?10:34??bolgLibx264\bolgLibx264\Debug\bolgLibx264.tlog\li
?????文件?????????540??2017-12-02?10:34??bolgLibx264\bolgLibx264\Debug\bolgLibx264.tlog\li
?????文件???????11573??2017-12-02?09:41??bolgLibx264\bolgLibx264\Debug\stdafx.obj
?????文件??????691200??2017-12-02?10:34??bolgLibx264\bolgLibx264\Debug\vc120.idb
?????文件?????1347584??2017-12-02?10:34??bolgLibx264\bolgLibx264\Debug\vc120.pdb
?????文件?????1560186??2015-01-09?20:02??bolgLibx264\bolgLibx264\libx264.dll
?????文件??????244022??2015-01-09?20:02??bolgLibx264\bolgLibx264\libx264.lib
?????文件?????1716224??2017-12-02?10:34??bolgLibx264\bolgLibx264\myCamera.h264
?????文件????????1588??2017-08-21?15:29??bolgLibx264\bolgLibx264\opencv249.props
?????文件???????60073??2008-11-06?11:37??bolgLibx264\bolgLibx264\pthreadGC2.dll
?????文件????????1538??2017-12-02?09:35??bolgLibx264\bolgLibx264\ReadMe.txt
?????文件?????????217??2017-12-02?09:35??bolgLibx264\bolgLibx264\stdafx.cpp
?????文件?????????234??2017-12-02?09:35??bolgLibx264\bolgLibx264\stdafx.h
............此處省略12個文件信息
- 上一篇:計算機組成原理(唐朔飛).pdf 完整版
- 下一篇:Scratch教案合集.rar
評論
共有 條評論