91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

C H264格式 轉(zhuǎn)MP4格式 C語言實現(xiàn)h264保存為mp4文件,包含vs2010編譯通過的demo

資源截圖

代碼片段和文件信息

#include?
#include?
#include?

#include?“mp4enc.h“
#include?“mp4file.h“

//FIXME?support?64?bit?variant?with?wide?placeholders
static?int64_t?updateSize(FILE?*pb?int64_t?pos)
{
int64_t?curpos?=?mp4_ftell(pb);
mp4_fseek(pb?pos?SEEK_SET);
put_be32(pb?curpos?-?pos);?/*?rewrite?size?*/
mp4_fseek(pb?curpos?SEEK_SET);
return?curpos?-?pos;
}

//獲取H.264的avcc參數(shù)
static?int?ff_isom_write_avcc(FILE?*pfile?Mp4Context?*mov)
{
if(mov->sps!=NULL&&mov->pps!=NULL){
put_buffer(pfile“\x01\x4D\x40\x14\xFF\xE1“6);
put_be16(pfilemov->sps_len);
put_buffer(pfilemov->spsmov->sps_len);
put_byte(pfile01);
put_be16(pfile4);//mov->pps_len);
put_buffer(pfilemov->ppsmov->pps_len);
return?0;
}else{
return?-1;
}
}

static?int?mov_write_tkhd_tag(FILE?*pb?Mp4Context?*mov)
{
int64_t?duration?=?MOV_TIMESCALE;
int?version?=?0;
(version?==?1)???put_be32(pb?104)?:?put_be32(pb?92);?/*?size?*/
put_tag(pb?“tkhd“);
put_byte(pb?version);
put_be24(pb?0xf);?/*?flags?(track?enabled)?*/
if?(version?==?1)?{
put_be64(pb?mov->time);
put_be64(pb?mov->time);
}?else?{
put_be32(pb?mov->time);/*?creation?time?*/
put_be32(pb?mov->time);/*?modification?time?*/
}
put_be32(pb?1);/*?track-id?*/
put_be32(pb?0);?/*?reserved?*/

//這個值對播放器很重要?具體時間還和mvhd的timescale相關(guān)用來指定了時長
(version?==?1)???put_be64(pb?mov->video_track_size*mov->MEDIA_SAMPLE_DURATION/MOV_TIMESCALE_TO_MEDIA_TIMESCALE):?\
put_be32(pb?mov->video_track_size*mov->MEDIA_SAMPLE_DURATION/MOV_TIMESCALE_TO_MEDIA_TIMESCALE);

put_be32(pb?0);?/*?reserved?*/
put_be32(pb?0);?/*?reserved?*/
put_be32(pb?0x0);?/*?reserved?(layer?&?Alternate?group)?*/
/*?Volume?only?for?audio?*/
//?if(track->enc->codec_type?==?AVMEDIA_TYPE_AUDIO) //注意以后的音視頻流程差異,目前為視頻
//?put_be16(pb?0x0100);
//?else
put_be16(pb?0);
put_be16(pb?0);?/*?reserved?*/

/*?Matrix?structure?*/
put_be32(pb?0x00010000);?/*?reserved?*/
put_be32(pb?0x0);?/*?reserved?*/
put_be32(pb?0x0);?/*?reserved?*/
put_be32(pb?0x0);?/*?reserved?*/
put_be32(pb?0x00010000);?/*?reserved?*/
put_be32(pb?0x0);?/*?reserved?*/
put_be32(pb?0x0);?/*?reserved?*/
put_be32(pb?0x0);?/*?reserved?*/
put_be32(pb?0x40000000);?/*?reserved?*/

/*?Track?width?and?height?for?visual?only?*/
//?if(st?&&?(track->enc->codec_type?==?AVMEDIA_TYPE_VIDEO?||
//?track->enc->codec_type?==?AVMEDIA_TYPE_SUBtitle))?{
//?double?sample_aspect_ratio?=?av_q2d(st->sample_aspect_ratio);
//?if(!sample_aspect_ratio?||?track->height?!=?track->enc->height)
//?sample_aspect_ratio?=?1;
put_be32(pb?mov->width/*sample_aspect_ratio?*?track->enc->width*0x10000*/);
put_be32(pb?mov->height/*track->height*0x10000*/);
return?0x5c;
}


static?int?mov_write_mdhd_tag(FILE?*pbMp4Context?*mov)
{
int?version=0;
(version?==?1)???put_be32(pb?44)?:?put_be32(pb?32);?/*?size?*/
put_tag(pb?“mdhd“);
put_byte(pb?version);
put_be24(pb?

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????584??2016-09-05?17:29??264tomp4\Debug\cl.command.1.tlog

?????文件???????1986??2016-09-05?17:29??264tomp4\Debug\CL.read.1.tlog

?????文件????????196??2016-09-05?17:29??264tomp4\Debug\CL.write.1.tlog

?????文件???????1042??2016-09-05?17:29??264tomp4\Debug\link.command.1.tlog

?????文件???????2298??2016-09-05?17:29??264tomp4\Debug\link.read.1.tlog

?????文件????????422??2016-09-05?17:29??264tomp4\Debug\link.write.1.tlog

?????文件??????61020??2016-09-05?17:29??264tomp4\Debug\mp4enc.obj

?????文件????????794??2016-09-05?17:29??264tomp4\Debug\mp4enclib.Build.CppClean.log

?????文件?????459776??2016-09-05?17:29??264tomp4\Debug\mp4enclib.exe

?????文件????????381??2016-09-05?17:29??264tomp4\Debug\mp4enclib.exe.intermediate.manifest

?????文件?????987840??2016-09-05?17:29??264tomp4\Debug\mp4enclib.ilk

?????文件?????????50??2016-09-05?17:29??264tomp4\Debug\mp4enclib.lastbuildstate

?????文件???????2775??2016-09-05?17:29??264tomp4\Debug\mp4enclib.log

?????文件????1772544??2016-09-05?17:29??264tomp4\Debug\mp4enclib.pdb

?????文件????????354??2016-09-05?17:29??264tomp4\Debug\mt.command.1.tlog

?????文件????????572??2016-09-05?17:29??264tomp4\Debug\mt.read.1.tlog

?????文件????????200??2016-09-05?17:29??264tomp4\Debug\mt.write.1.tlog

?????文件??????35840??2016-09-05?17:29??264tomp4\Debug\vc100.idb

?????文件??????53248??2016-09-05?17:29??264tomp4\Debug\vc100.pdb

?????文件????????267??2010-07-13?10:28??264tomp4\h264.h

?????文件????2490368??2016-09-05?16:19??264tomp4\ipch\mp4enclib-915e50b6\mp4enclib-805f7414.ipch

?????文件???????1824??2010-08-13?14:54??264tomp4\mp4conf.h

?????文件??????35552??2016-09-05?17:16??264tomp4\mp4enc.c

?????文件???????3577??2010-08-13?14:59??264tomp4\mp4enc.h

?????文件?????459776??2016-09-05?17:29??264tomp4\mp4enclib.exe

?????文件????2183168??2016-09-05?17:29??264tomp4\mp4enclib.sdf

?????文件????????884??2016-08-30?11:49??264tomp4\mp4enclib.sln

????..A..H.?????14336??2016-09-05?17:29??264tomp4\mp4enclib.suo

?????文件???????5791??2016-08-31?11:53??264tomp4\mp4enclib.vcxproj

?????文件????????988??2016-08-30?11:49??264tomp4\mp4enclib.vcxproj.filters

............此處省略11個文件信息

評論

共有 條評論