Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

27_h264_decode,解码h264出的yuv文件播放完全错误,播放显示红绿横杠 #7

Open
negier opened this issue Mar 7, 2022 · 1 comment

Comments

@negier
Copy link

negier commented Mar 7, 2022

我试了两个h264文件,然后代码也是拿你的跑的,h264用probe命令看过,格式是yuv420p的,没问题,也测试过能正常播放。

但是解码出的yuv文件无法用播放;
而且和用ffmpeg命令解出来的yuv文件大小都是不一样的,官方解的能播。

得出结论,代码哪里错了,如果您怀疑是我的h264文件问题,得到您允许我可以把两个h264文件通过邮箱发给您,如我前面所述,能播放,说明我的h264是没问题的。

无论如何,在此提出问题,我暂时也没有空,有空了,我也帮着修吧

@Miles612
Copy link

这似乎与视频分辨率有关,当一个16:9 或者4:3的视频是可以正常转码出来的,但当视频的比例不是这两个比例时,那就会出现错误。可以尝试使用以下修改,帮我显示出了1000x562分辨率的视频
for (int i = 0; i < frame->height; i++) {
outFile.write((char *) (frame->data[0] + i * frame->linesize[0]), frame->width);
}
for (int i = 0; i < frame->height / 2; i++) {
outFile.write((char *) (frame->data[1] + i * frame->linesize[1]), frame->width / 2);
}
for (int i = 0; i < frame->height / 2; i++) {
outFile.write((char *) (frame->data[2] + i * frame->linesize[2]), frame->width / 2);
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants