企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
##Tutorial -2 初印象:所有tutorial图像跑得**最快的**。如果看了后面的代码,其实就知道原因,这里buffer有了就播放,这里没有使用定时器来控制帧,更没有和音频同步。 ### 测试用例A:微软自带野生动物.wmv 结果及简要分析:失败,原因是不支持中文名; ### 测试用例B:微软自带 wildlife 结果及简要分析:成功播放,在 frameFinished加上断点。结果表格如下: ~~~ Function: SDL_main(int, char * *), Thread: 0x841C 主线程, frameFinished=-858993460 Function: SDL_main(int, char * *), Thread: 0x841C 主线程, frameFinished=0 Function: SDL_main(int, char * *), Thread: 0x841C 主线程, frameFinished=280 Function: SDL_main(int, char * *), Thread: 0x841C 主线程, frameFinished=280 Function: SDL_main(int, char * *), Thread: 0x841C 主线程, frameFinished=280 Function: SDL_main(int, char * *), Thread: 0x841C 主线程, frameFinished=280 后面省略上千次 ~~~ ### 测试用例C:ffmpeg sample: CLOCKTXT_320.avi' 测试结果及分析: 1. 格式的理解:覆盖上yv12和最终显示的yuv420 1. 第一次完整的认识sdl显示的过程:设置surface,设置覆盖,拷贝覆盖,显示(sdl_updateRec) 1. 第一次使用dump函数,看到结果如下: ~~~ [avi @ 003a3000] max_analyze_duration 5000000 reached at 5000000 Input #0, avi, from 'CLOCKTXT_320.avi': Duration: 00:00:12.00, start: 0.000000, bitrate: 42 kb/s Stream #0.0: Video: msrle, pal8, 320x320, 1 fps, 1 tbr, 1 tbn, 1 tbc Stream #0.1: Audio: truespeech, 8000 Hz, 1 channels, s16, 8 kb/s ~~~ 以上,第一次读包,直觉是读取的头部信息。 由于样本是clock,帧分别就是12个时刻对应的图像,一帧一帧的跟踪变化,对出图过程的理解有很大帮助。 当前只处理图像帧,如果要扩展声音的处理,将在以下代表位置: ~~~ while (av_read_frame(pFormatCtx, &packet) >= 0) {//有时候是声音,有时候是vedio if (packet.stream_index == videoStream) { ~~~ ### 小结: **测试用例标准化了**,**入门建议使用简单的测试案列**