JM是H.264编码的官方实现,与X264开源实现相比,JM的实现比較完整,代码更加规范。并且同一时候提供了编码和解码过程。便于对照分析。可是JM的最大缺点是效率比X264低。因此。非常多应用都基于X264来做,可是,假如要进行研究学习的话。JM更keyi为合适。

JM18.6能够支持linux、UNIX和windows等多个平台。

JM的早起版本号中还提供对VC6.0的支持,可是最新的貌似不再支持了,由于网上非常多材料都提到”tml.dsw”文件,显然这是VC6.0的project文件,而在文件文件夹中没有这个文件了。可是JM18.6中对windows的平台也支持不同版本号的VS,如“jm_vc8.sln”,“jm_vc9.sln”和“jm_vc10.sln”,假设使用VS2012的话,直接选择“jm_vc10sln”。然后让VS自己主动更新就能够了。

图 1  JM18.6 原始文件列表

解压JM18.6之后,打开文件文件夹,列表如图一所看到的。

然后双击“jm_vc10.sln”,可能会出现以下的对话框。这是由于JM不可能一直跟着微软的VS版本号跑。也没那个必要,因此,这里仅仅支持到VS2010版本号。其实。仅仅有单击更新就能够自己主动更新到VS2012了。

图 2 更新VC++的库

更新完成后,在资源管理器界面能够看到例如以下所看到的的四个子目录。

其功能分别为H264/AVC编码、解码、RTP包内容分析和模拟RTP丢包的測试等。

图 3 解决方式管理器里的四个模块

然后单击菜单条的“使用本地Windows调试器”调试器,这时候会提示你须要更新,单击更新就能够了。

该过程比較长,会将老的库都进行更新,同一时候生成最新的可运行文件等。

更新完成后,在JM的bin文件夹下就有了四个重要的可运行程序ldecod.exe、lencod.exe、rtp_loss.exe和rtpdump.exe。一系列以.cfg为后缀的配置文件和測试文件等等。

完毕之后,“ctrl+F5”运行编码程序,发现弹出以下的窗口

图 4 找不到编码的配置文件

没有找到配置文件”encoder.cfg”,解决方法:选中资源管理器中的lencod,右击,选择“属性”->“配置属性”->“调试”->“命令行參数”。在命令行參数中输入你的JMproject的bin目录的一个编码配置文件的完整路径,可是一定要记住,先加写上”-d ”(-d后和路径之间要有空格)再输入路径。比如。我的是“-d F:/JM/bin/encoder_baseline.cfg”。

此时再编译lencod发现程序能运行:

图 5 找不到待编码的YUV文件

该程程序默认将bin下的“foreman_part_qcif.yuv”文件编码成“test.264”文件,假如你的bin路径下没有这个文件,或者生成的时间不是你当前的时间,或者直接弹出了上面的对话框,说明程序没有对文件foreman_part_qcif.yuv编码。

解决方法是使用普通文本编译器打开“encoder_baseline.cfg”文件,找到以下两个位置,分别设置成文件的绝对路径。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHVleXVzaGVuemhvdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

图 6 改动encoder.cfg 文件

比如,我将两个路径设置为:

InputFile             ="F:/JM/bin/foreman_part_qcif.yuv"       # Input sequence

OutputFile            ="F:/JM/bin/test.264"          # Bitstream

然后再运行,就能够运行了,然后在bin文件夹下就看到生成的test.264文件了。使用streameye等播放器查看一下:

图 7 执行编码后的结果

在Visual Stdio 2012中编译执行JM18.6的方法的更多相关文章

  1. 在Visual Studio 2012中使用VMSDK开发领域特定语言(二)

    本文为<在Visual Studio 2012中使用VMSDK开发领域特定语言>专题文章的第二部分,在这部分内容中,将以实际应用为例,介绍开发DSL的主要步骤,包括设计.定制.调试.发布以 ...

  2. 如何在Visual Studio 2012中发布Web应用程序时自动混淆Javascript

    同Java..NET实现的应用程序类似,Javascript编写的应用程序也面临一个同样的问题:源代码的保护.尽管对大多数Javascript应用公开源代码不算是很严重的问题,但是对于某些开发者来说, ...

  3. 在Visual Studio 2012中使用VMSDK开发领域特定语言(一)

    前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modeling SDK进行领域特定语言(DSL)的开发,包括两个部分的内容.在第一部分中,将对 ...

  4. 【转载】在 Visual Studio 2012 中创建 ASP.Net Web Service

    在 Visual Studio 2012 中创建 ASP.Net Web Service,步骤非常简单.如下: 第一步:创建一个“ASP.Net Empty Web Application”项目 创建 ...

  5. 在Visual Studio 2012中使用VMSDK开发领域特定语言1

    在Visual Studio 2012中使用VMSDK开发领域特定语言(一)   前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modelin ...

  6. visual stdio 2012 c#学习笔记1

    visual stdio 2012 c#学习笔记1 1 我在安装过程中选择的是英文版本,不过刚入手,所以想先从中文菜单入手,所以需要安装中文语言包: microsoft的中文语言包下载地址为:http ...

  7. [开发笔记]-Visual Studio 2012中为创建的类添加注释的模板

    为类文件添加注释,可以让我们在写代码时能够方便的查看这个类文件是为了实现哪些功能而写的. 一:修改类文件模板 找到类模版的位置:C:\Program Files (x86)\Microsoft Vis ...

  8. 在Visual Studio 2012中使用ASP.NET MVC5

    去年11月,.NET团队发布了用于 Visual Studio 2012 的 ASP.NET 和 Web 工具 2013.1 您可以从下面提供的链接下载该更新:  下载用于 Visual Studio ...

  9. 在vs2010中编译log4cxx-0.10.0详细方法(从下载、编译、解决错误详细介绍)

    在vs2010中编译log4cxx-0.10.0详细方法(从下载.编译.解决错误详细介绍) http://blog.sina.com.cn/s/blog_a459dcf501013tbn.html

随机推荐

  1. jQuery(七):节点操作

    jQuery中节点操作主要分为以下几种: 查找节点. 创建节点. 插入节点. 替换节点. 复制节点. 删除节点. 一.查找节点 示例: <!DOCTYPE html> <html l ...

  2. Java中的this和super

    在Java中有两个非常特殊的变量:this和super,这两个变量在使用前都是不需要声明的.this变量使用在一个成员函数的内部,指向当前对象,当前对象指的是调用当前正在执行方法的那个对象.super ...

  3. R语言使用tryCatch进行简单的错误处理

    最近在看<机器学习:实用案例解析>,做邮件过滤器的时候,参考书中的代码读取邮件文件进行分类器训练,在读取过程中会出现下面的错误:   seq.default(which(text == & ...

  4. Java如何显示小时和分钟?

    在Java中,如何显示小时和分钟(当前时间)? 此示例演示如何使用Calender类的Calender.getInstance()来显示某个时刻的小时和分钟. package com.yiibai; ...

  5. e830. 向JTabbedPane中加入一个卡片

    This example demonstrates various ways to add a tab to a tabbed pane. // Create a tabbed pane JTabbe ...

  6. JAR 文件格式提供了许多优势和功能

    JAR 文件格式提供了许多优势和功能,其中很多是传统的压缩格式如 ZIP 或者 RAR 所没有提供的.它们包括: 安全性 可以对 JAR 文件内容加上数字化签名.这样,能够识别签名的工具就可以有选择地 ...

  7. memcached -- 运行memcached

    Memcached 运行 Memcached命令的运行: $ /usr/local/memcached/bin/memcached -h 注意:如果使用自动安装, memcached 命令位于 /us ...

  8. #HTTP协议学习# (八)状态码详解

    可直接参考:http://www.cnblogs.com/TankXiao/archive/2013/01/08/2818542.html

  9. 如​何​屏​蔽​C​h​r​o​m​e​、​S​a​f​a​r​i​等​W​e​b​k​i​t​内​核​浏​览​器​文​本​框​和​文​本​域​的​高​亮​边​框​、​可​变​大​小​等​自​动​外​观​处​理

    1.高亮外框的取消 input { outline: none; } textarea { outline: none; } 如上,使用CSS的outline就可以实现 2.文本域缩放功能的取消 也是 ...

  10. system.web下的HttpModules节点和system.webServer下的modules节点的配置区别

    [转]自定义HttpModule的一些经验--配置篇 自定义web模块,需继承System.Web.IHttpModule接口 一:拦截对该服务器所有的http请求. 第一步:将自定义module类使 ...