该博客用VS 2019跑JM8.6代码,本人刚刚接触这放方面知识,菜鸟一枚,博客中有不足的地方希望大家原谅并指出。
参考博客:点击这里
1、用VS打开JM下的tml.sln文件
![](https://i-blog.csdnimg.cn/blog_migrate/8a1e2f4d2806cc4ef0f48d7bad546786.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ff5bc5442ea35e86e33a573f42e36939.png)
我用VS2019打开后,会出现如下的提示,点击确认,然后把rtpdump文件删掉(不知道为什么要删掉)。Iencod代表编码,Idecod代表解码。
![](https://i-blog.csdnimg.cn/blog_migrate/9d4ec7cd43726a51696fc789ef4b2ef7.png)
![](https://i-blog.csdnimg.cn/blog_migrate/bd539825d55b45d87a7643e15b569407.png)
把需要测试的YUV文件丢到JM文件的bin目录下。
2、编码
打开Iencod下的 encoder_main.cfg 文件,InputFile表示输入的YUV序列,StartFrame:从第几帧开始压缩视频,FrameToBeEncoded表示要压缩多少帧,SourceWidth和SourceHeight分别代表要压缩的视频的长和高,OutputFile表示压缩好的视频的名称。以上那些都是压缩视频之前需要设置的参数
![](https://i-blog.csdnimg.cn/blog_migrate/e8de06c79aadb2292aeb52f7139a48c6.png)
刚开始我天真的以为设置好之后,右击Iencod把它设为启动项目,然后调试就可以了。然而并不行,这样弄的话会出现如下的错误。
![](https://i-blog.csdnimg.cn/blog_migrate/be6af37565ca7ad439f731bfe98513d9.png)
所以,接下来记录正确的步骤。非常感谢本文中的参考博客。
设置好上面的参数后,右击Iencod设置为启动项目,然后再右击Iencod选择进入属性界面。修改常规下的输出目录,点击下拉菜单箭头,选择编辑,再选择宏,找到如图所示的目录,把它插入后,在后面添加一个bin,点击确认。步骤如图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/7dc8da6b4664bfc4b8a574b9b032a235.png)
![](https://i-blog.csdnimg.cn/blog_migrate/be188fb296028c7a627981f4c49513be.png)
![](https://i-blog.csdnimg.cn/blog_migrate/74de04fe6c4bb44664db199b0b7e5326.png)
在Iencod属性界面中,再把调试下的工作目录按上述方法更改为同样的目录,右击Iencod重新生成。
然后在JM文件夹下的bin文件夹中,把encoder_baseline.cfg文件复制一份,重命名为encoder.cfg(图略)。
弄好之后右击Iencod设置为启动项目,再重新生成,然后调试。
![](https://i-blog.csdnimg.cn/blog_migrate/f5755a219b35c63b5895ee8a60d99749.png)
![](https://i-blog.csdnimg.cn/blog_migrate/72fe3e3087a2b5440f60e2a5e55e7ad3.png)
运行结果如图
![](https://i-blog.csdnimg.cn/blog_migrate/257f8d39450ebcdc15371a122d3f2286.png)
3、解码
按照上述同样的方式设置Idecod属性中的输出目录和工作目录。再修改调试下的命令参数。
![](https://i-blog.csdnimg.cn/blog_migrate/3dbf488c861134107a1477c344a52d3f.png)
把Idecod设置为启动项目,重新生成项目,调试。调试结果如图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/52d9823312d4ecd176625f37f6e0a535.png)