コード例 #1
0
int ConvertH264()
{
	int nOffset = 0;
	int count = 0;

	if (g_cnvt.Open(g_flvFile) == 0)
		return 0;

	unsigned int nTimeStamp = 0;
	while (1)
	{
		int nNaluSize = 0;
		if (Cnvt::GetOneNalu(g_pBufferIn + nOffset, g_nFileSize - nOffset, g_pBufferOut, nNaluSize) == 0)
			break;

		g_cnvt.ConvertH264((char *)g_pBufferOut, nNaluSize, nTimeStamp);

		if (g_pBufferOut[4] != 0x67 && g_pBufferOut[4]!=0x68)
			nTimeStamp += 33;
		nOffset += nNaluSize;
		if (nOffset >= g_nFileSize - 4)
			break;
		count++;
	}
	g_cnvt.Close();

	return 1;
}
コード例 #2
0
int ConvertAAC()
{
	int nOffset = 0;
	int count = 0;

	if (g_cnvt.Open(g_flvFile, 1, 0) == 0)
		return 0;

	unsigned int nTimeStamp = 0;
	while (1)
	{
		int nAACFrameSize = 0;
		if (Cnvt::GetOneAACFrame(g_pBufferIn + nOffset, g_nFileSize - nOffset, g_pBufferOut, nAACFrameSize) == 0)
			break;

		printf("nAACFrameSize = %d\n", nAACFrameSize);
		g_cnvt.ConvertAAC((char *)g_pBufferOut, nAACFrameSize, nTimeStamp);

		nTimeStamp += double(1024*1000) / double(44100);
		nOffset += nAACFrameSize;
		if (nOffset >= g_nFileSize - 4)
			break;
		count++;
	}
	g_cnvt.Close();

	return 1;
}