audio-video-dev-tutorial
audio-video-dev-tutorial copied to clipboard
27_h264_decode,解码h264出的yuv文件播放完全错误,播放显示红绿横杠
我试了两个h264文件,然后代码也是拿你的跑的,h264用probe命令看过,格式是yuv420p的,没问题,也测试过能正常播放。
但是解码出的yuv文件无法用播放; 而且和用ffmpeg命令解出来的yuv文件大小都是不一样的,官方解的能播。
得出结论,代码哪里错了,如果您怀疑是我的h264文件问题,得到您允许我可以把两个h264文件通过邮箱发给您,如我前面所述,能播放,说明我的h264是没问题的。
无论如何,在此提出问题,我暂时也没有空,有空了,我也帮着修吧
这似乎与视频分辨率有关,当一个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); }