C++ 我需要从示例MPEG-TS文件中获取PID
我需要从一个示例MPEG-TS文件中获取PID,我尝试使用C++ 我需要从示例MPEG-TS文件中获取PID,c++,c,ffmpeg,multimedia,C++,C,Ffmpeg,Multimedia,我需要从一个示例MPEG-TS文件中获取PID,我尝试使用fopen()读取该文件,并以十六进制格式获取数据。现在我陷入了在整个数据中查找PID字节的困境。有人能帮我吗 我使用了以下代码: #include <stdio.h> #include <string.h> void main() { FILE *myfile; FILE *output; int i=0,j; unsigned int buffer; int o; myfile=fopen("s
fopen()
读取该文件,并以十六进制格式获取数据。现在我陷入了在整个数据中查找PID字节的困境。有人能帮我吗
我使用了以下代码:
#include <stdio.h>
#include <string.h>
void main()
{
FILE *myfile;
FILE *output;
int i=0,j;
unsigned int buffer;
int o;
myfile=fopen("screen.ts","rb");
output = fopen("output2.txt","w");
do{
o=fread(&buffer, 2, 1, myfile);
if(o!=1)
break;
printf("%d: ",i);
printf("%x\n",buffer);
fprintf(output,"%x ",buffer);
i++;
}while(1);
}
#包括
#包括
void main()
{
文件*myfile;
文件*输出;
int i=0,j;
无符号整数缓冲区;
INTO;
myfile=fopen(“screen.ts”、“rb”);
输出=fopen(“output2.txt”,“w”);
做{
o=fread(&buffer,2,1,myfile);
如果(o!=1)
打破
printf(“%d:,i”);
printf(“%x\n”,缓冲区);
fprintf(输出,“%x”,缓冲区);
i++;
}而(1),;
}
我从文件中获取了数据,现在需要定位数据中的“PID”字节。我建议看两件事:
p
。检查同步字节是否p[0]==0x47
PID是一个13位无符号整数,可以存储在
uint16\u t
中,它等于((p[1]&0x1f)你真的需要详细说明你的问题。你完全不清楚你想要什么。@MichaelWalz现在我已经编辑了这个问题,你能回答吗?你至少需要显示你代码的相关部分。并且详细说明,写更多的文本,解释更多。@MichaelWalz现在请…你为什么认为你的平台上int
有2个字节长?我试着从Github编译“MPEG TS parser”的代码,我得到了很多错误,比如“未知类型名称”,请帮助我。不要尝试编译它,看看源代码,特别是mpegts。c这里:这对我有帮助,我还需要PID类型,你有什么想法吗?@SaiRaghuramKaligotla只使用lib。