• 大小: 9.5MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-06
  • 语言: C/C++
  • 标签: Linux  C语言  FLV  h264  aac  

资源简介

Linux下C语言FLV文件拆解成h264视频流和aac文件 大神的程序,我只是加了个Makefile移植到Linux下。

资源截图

代码片段和文件信息

#include “Aac.h“

int AllocStruct_Aac_Tag(Audio_Tag ** audiotag)
{
Audio_Tag * audiotag_t = * audiotag;
if ((audiotag_t = (Audio_Tag *)calloc(1sizeof(Audio_Tag))) == NULL)
{
printf (“Error: Allocate Meory To AllocStruct_Aac_Tag Buffer Failed “);
return getchar();

if ((audiotag_t->Data = (unsigned char * )calloc(ONE_AUDIO_frame_SIZEsizeof(unsigned char))) == NULL)
{
printf (“Error: Allocate Meory To audiotag_t->Data Buffer Failed “);
return getchar();
}
* audiotag = audiotag_t;
return 1;
}

int FreeStruct_Aac_Tag(Audio_Tag * audiotag)
{
if (audiotag)
{
if (audiotag->Data)
{
free(audiotag->Data);
audiotag->Data = NULL;
}
free(audiotag);
audiotag = NULL;
}
return 1;
}

int ReadStruct_Aac_Tag(unsigned char * Buf  unsigned int length Audio_Tag * tag)
{
int Aac_Tag_pos = 0;
tag->Type = Buf[0];
tag->DataSize = 
Buf[1]  << 16 |
Buf[2]  << 8  |
Buf[3];
tag->Timestamp = 
Buf[4]  << 16 |
Buf[5]  << 8  |
Buf[6];
tag->TimestampExtended = Buf[7];
tag->StreamID = 
Buf[8]  << 16 |
Buf[9]  << 8  |
Buf[10];
Aac_Tag_pos += 11;
tag->SoundFormat = 
Buf[Aac_Tag_pos] >> 4;
tag->SoundRate = 
        (Buf[Aac_Tag_pos] >> 2) & 0x03;
tag->SoundSize = 
(Buf[Aac_Tag_pos] >> 1) & 0x01;
tag->SoundType = 
 Buf[Aac_Tag_pos] & 0x01;
Aac_Tag_pos ++;
if (tag->SoundFormat == 0x0A)       //AACAUDIODATA
{
tag->AACPacketType = 
Buf[Aac_Tag_pos];
Aac_Tag_pos ++;
}
memcpy(tag->DataBuf + Aac_Tag_poslength - Aac_Tag_pos );
return length - Aac_Tag_pos;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-11-08 15:27  Flv_to_h264_AAC_Demux\
     文件        1468  2013-05-27 11:07  Flv_to_h264_AAC_Demux\Flv.cpp
     文件         122  2017-11-08 15:01  Flv_to_h264_AAC_Demux\Information.h
     目录           0  2017-11-08 15:26  Flv_to_h264_AAC_Demux\FLV_STREAM\
     文件     5009612  2013-05-24 10:13  Flv_to_h264_AAC_Demux\FLV_STREAM\test.flv
     文件         423  2017-11-08 15:18  Flv_to_h264_AAC_Demux\Makefile
     文件        2436  2013-05-27 15:52  Flv_to_h264_AAC_Demux\Aac.h
     文件        3400  2013-05-27 16:48  Flv_to_h264_AAC_Demux\H264.h
     文件        1713  2013-05-27 14:33  Flv_to_h264_AAC_Demux\Flv.h
     目录           0  2017-11-08 15:29  Flv_to_h264_AAC_Demux\H264_STREAM\
     文件     4370512  2017-11-08 15:27  Flv_to_h264_AAC_Demux\H264_STREAM\test.264
     目录           0  2017-11-08 15:27  Flv_to_h264_AAC_Demux\AAC_STREAM\
     文件      587692  2017-11-08 15:27  Flv_to_h264_AAC_Demux\AAC_STREAM\test.aac
     文件       38024  2017-11-08 15:27  Flv_to_h264_AAC_Demux\convertflv
     目录           0  2017-11-08 15:30  Flv_to_h264_AAC_Demux\si\
     文件       20842  2017-11-08 15:30  Flv_to_h264_AAC_Demux\si\flv.WK3
     文件       20480  2017-11-08 15:30  Flv_to_h264_AAC_Demux\si\flv.IAB
     文件        4096  2017-11-08 15:30  Flv_to_h264_AAC_Demux\si\flv.IMB
     文件         368  2017-11-08 15:30  Flv_to_h264_AAC_Demux\si\flv.IMD
     文件         528  2017-11-08 15:30  Flv_to_h264_AAC_Demux\si\flv.IAD
     文件         776  2017-11-08 15:27  Flv_to_h264_AAC_Demux\si\flv.PO
     文件          60  2017-11-08 15:27  Flv_to_h264_AAC_Demux\si\flv.PFI
     文件        5192  2017-11-08 15:27  Flv_to_h264_AAC_Demux\si\flv.PR
     文件       30872  2017-11-08 15:27  Flv_to_h264_AAC_Demux\si\flv.PRI
     文件       30440  2017-11-08 15:27  Flv_to_h264_AAC_Demux\si\flv.PS
     文件         863  2017-11-08 15:27  Flv_to_h264_AAC_Demux\Main.cpp
     文件         825  2017-11-08 15:21  Flv_to_h264_AAC_Demux\FileIo.cpp
     文件       11447  2017-11-08 15:11  Flv_to_h264_AAC_Demux\Demux.cpp
     文件        6110  2013-05-29 11:22  Flv_to_h264_AAC_Demux\script.cpp
     文件        4878  2013-05-27 17:00  Flv_to_h264_AAC_Demux\H264.cpp
     文件        2430  2013-05-29 11:20  Flv_to_h264_AAC_Demux\script.h
............此处省略3个文件信息

评论

共有 条评论