不想调用第三方程序,如ffmpeg或mencoder等。
用ffmpeg的库?学习DirectShow?
请大家指条明路
------解决方案--------------------------------------------------------
1. BMP,YUV等图像处理(缩放,颜色变换等),PCM音频处理(变采样率,声道等)目的是了解原始音视频的数据结构和存储原理。
2. 学习DirectShow(文件播放流程,编码流程),目的是了解音视频编解码的流程,了解文件结构,音视频的一些参数信息(重点VIDEOINFOHEADER,WAVEFORMATEX),时间戳等,还能为后面的学习事半功倍。
3. 分析一些常用的文件结构,如AVI,MPEG,FLV等(可以用Directshow抓数据,第三方的,自己的比较),了解文件的一些音视频打包方式,时间戳等。
4. 分析一些常用的视频格式,如MPV,H264,MPEG4等(不需解码,分析帧即可,可以用Directshow抓数据),了解视频编解码原理,IPB帧的关系,编码数据的表示。
5. 分析一些常用的音频格式,如MP3,AAC,AC3等(不需解码,分析帧即可,可以用Directshow抓数据),了解音频编解码原理,帧编码数据的表示。
6. 可以自己动手写一些文件分析器,音视频编解码器(这个可以使用第三方开源代码)。
所有的步骤都要习惯分析二进制数据,我常用UltraEdit。3.4.5适当要看ISO标准文档,可以参考ffmpeg代码。先别向学C++一样急着学习编程方法,懂原理比什么都重要,自己要多分析,善于总结经验,要有像做破解软件的分析精神。好多人会写代码,套用别人的代码,也能大概完成,但好多人都不懂为什么,哪里出了错连分析的思路都没有,这样其实就是还没有入门。这是一个学习方向,慢慢来,一步一步了解踏实了。预计2年以上才算学有所成。
------解决方案--------------------------------------------------------
看你要达到什么程度了,最直接有效的方法是利用ffmpeg.exe进行简单的格式转换!
------解决方案--------------------------------------------------------
学习ffmpeg