【资源下载】JM 的H.264/AVC编解码(附YUVPlayer和YUV文件下载)_一条余弦Cos的博客-程序员宅基地

技术标签: YUVPlayer  JM  H.264  YUV  图像识别  资源下载  

【资源下载】JM 的H.264/AVC编解码(附YUVPlayer和YUV文件下载)

  整理不易,冲冲冲……后期继续更
  文末有惊喜



一、 JM8.6 的H.264/AVC编解码配置过程

最近更新

  1、下载并解压 JM 源代码[<最近更新—文末>
  2、检查源代码根目录下的 bin 文件夹,确保存在编码配置文件(encoder_*.cfg)、待编码视频序列文件(foreman_part_qcif.yuv,对应为编码配置文件中 InputFile 参数的值)和解码配置文件(decoder.cfg)
  3、打开源代码根目录下的工作区 tml.dsw


1.1 编码

  4、鼠标左键选中 lencod 工程
  5、打开 Project -> Settings -> Debug ,在 Working directory 选项中填写 ./bin,在 Program arguments 选项中填写需要使用的编码配置文件,例如:-d encoder_baseline.cfg ,然后确定修改
  6、鼠标右键选中 lencod 工程,选择鼠标右键菜单 Set as Active Project
  7、编译运行编码器,完成编码。这个时候会在源代码根目录下的 bin 文件夹中生成几个新文件,其中 test.264 (对应为编码配置文件中 OutputFile 参数的值)即为压缩码流文件


1.2 解码

  8、鼠标左键选中 ldecod 工程
  9、打开 Project -> Settings -> Debug ,在 Working directory 选项中填写 ./bin,在 Program arguments 选项中填写需要使用的解码配置文件,例如:decoder.cfg ,然后确定修改
  10、鼠标右键选中 ldecod 工程,选择鼠标右键菜单 Set as Active Project
  11、编译运行解码器,完成解码。这个时候会在源代码根目录下的 bin 文件夹中生成几个新文件,其中 test_dec.yuv(对应为解码配置文件中的第三个参数)即为解码文件


二、编译JM流程

在编程开发过程中,建议大家养成良好习惯,文件不要乱放、混放。
因此建议编译 JM 过程如下:

  1、下载并解压 JM 源代码
  2、在源代码根目录下的 bin 文件夹中新建 backup 文件夹,将 bin 文件夹中所有文件移入该文件夹做备份
  3、在源代码根目录下新建 encodtest 文件夹,作为编码使用。将编码过程所需要的文件,例如:编码配置文件(encoder_baseline.cfg),待编码视频序列文件(foreman_part_qcif.yuv,对应为编码配置文件中 InputFile 参数的值)复制到该文件夹中
  4、在源代码根目录下新建 decodtest 文件夹,作为解码使用。将解码过程所需要的文件,例如:解码配置文件(decoder.cfg)复制到该文件夹中
  5、打开源代码根目录下的工作区 tml.dsw


2.1 编码

  6、鼠标左键选中 lencod 工程
  7、打开 Project -> Settings -> Debug ,在 Working directory 选项中填写 ./encodtest ,在 Program arguments 选项中填写需要使用的编码配置文件(要与第3步所复制的文件同名),例如:-d encoder_baseline.cfg ,然后确定修改
  8、鼠标右键选中 lencod 工程,选择鼠标右键菜单 Set as Active Project
  9、编译运行编码器,完成编码。这个时候会在源代码根目录下的 encodtest 文件夹中生成几个新文件,其中 test.264 (对应为编码配置文件中 OutputFile 参数的值)即为压缩码流文件


2.2 解码

  10、鼠标左键选中 ldecod 工程
  11、打开 Project -> Settings -> Debug ,在 Working directory 选项中填写 ./decodtest,在 Program arguments 选项中填写需要使用的解码配置文件(要与第4步所复制的文件同名),例如:decoder.cfg ,然后确定修改
  12、将编码生成的压缩码流文件 test.264 复制到 decodtest 文件夹中
  13、鼠标右键选中 ldecod 工程,选择鼠标右键菜单 Set as Active Project
  14、编译运行解码器,完成解码。这个时候会在源代码根目录下的 decodtest 文件夹中生成几个新文件,其中 test_dec.yuv(对应为解码配置文件中的第三个参数)即为解码文件


2.3 注意

  可以不用打开 tml.dsw 工程,而直接打开单个工程,例如:打开 lencod.dsw 就可以进行编码,而打开 ldecod.dsw 就可以进行解码。单独打开工程所需要的设置与前述过程相同。


  彩蛋来袭,希望每一位学习路上的你不再孤单~
  有帮助别忘了点赞收藏,加关注Ya!!!

加油鸭                      
  JM8.6源码下在地址:https://github.com/ACosine/Tools
  YUVPlayer下载地址:http://www.yuvplayer.com/
  YUV 文件下载地址:http://trace.eas.asu.edu/yuv/index.html
  注意: 用YUVPlayer播放时请记住下载视频对应的长和宽的数值,播放时需要自己手动填入,否则会出现播放不正确的情况


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Sunnyside_/article/details/106676542

智能推荐

新晋黑马FAF CDN公链深度解析—快问快答_网积真ddcfaf_421010的博客-程序员宅基地

1.什么是FAF答:FAF(Fairly Advance Future)是全球首发的第一条 CDN 公链,致力于打造真正去中心化的互联网网络生态。其中,尤为值得一提的是,FAF团队打造的分布式CDN 技术,是首家 CDN+区块链技术,具有实际落地分布式网络应用、实体矿机搭建节点、合理利用家庭闲置网络创造收益、加强分布式防御和传输功能等优势,最大程度的占据了 CDN 技术的最高点。2.FAF的开发者是谁?答:这个问题我们不妨从两个维度来进行解答。首先,FAF 公链平台的开发,是由来自美..._网积真ddcfaf

针对hibernate,jdbc,sql的思考-程序员宅基地

1.对象与数据库的映射,关键在于对象关系的映射,但是没做到很理想,配置过多,控制复杂,另外还会出错。其实本质在于对象不够自由。 2.事务处理。这点上更容易出问题,相对于各种各样的事务管理器,要兼容是一个大问题,总归在各种应用服务器上有很多问题。其本质在于创建了一个自我数据存取小环境,必然面临各种兼容问题。 3.HQL语言。建立对象查询语言,类SQL,但是不同于任何一种SQL,

warning:ISO C90 forbids mixed declarations and code_: warning: iso c90 forbids mixed declarations and -程序员宅基地

warning:ISO C90 forbids mixed declarations and code变量定义之前任何一条非变量定义的语句(重视:语句是会带分号的)都会引起这个警告! 将非变量的定义移到变量定义之后 即可,也就是变量的声明 必须在执行语句之前。_: warning: iso c90 forbids mixed declarations and code

C++进阶_继承-程序员宅基地

C++进阶_继承1.继承的定义继承是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类称为派生类#include<iostream>using namespace std;class Person{protected: string _name; int _age;public: Person(...

网页游戏 2-程序员宅基地

有时候真是怀疑自己是否真的想在这个公司干下去——差劲的领导、无序的开发进度,还有抠门的老板。网页游戏到底是什么东西呢?有所谓的游戏引擎嘛?我觉得使用引擎这个说法不适合网页游戏,早期的网页游戏只是简单的表格显示,后来融入了flash,如今全部使用flash、flex等adobe的技术。哼哼,就像大家说的,网页游戏的开发周期就是3个月,没错,就是这么短。虽然有的游戏花了很长的时间,但是我只

安装wampserver后无法打开phpmyadmin、localhost_wampserver绿色运行phmyadmin出现404-程序员宅基地

安装完wampserver后左键点击wampserver图标,然后点击phpmyadmin后发现显示404 not found解决方法:修改80端口号左键点击wampserver图标,点击apache,选择http.conf 。 使用查询工具查找“80”将80端口全部修改为8080端口,如下图所示打开wamp的安装路径C:\wamp64 找到 wampm..._wampserver绿色运行phmyadmin出现404

随便推点

CVE-2022-22963 Spring Cloud Function SPEL表达式注入漏洞复现-程序员宅基地

SpringCloudFunction是SpringBoot开发的一个Servless中间件(FAAS),支持基于SpEL的函数式动态路由。当Spring Cloud Function 启用动态路由functionRouter时, HTTP请求头 spring.cloud.function.routing-expression参数存在SPEL表达式注入漏洞,攻击者可通过该漏洞进行远程命令执行。_cve-2022-22963

C语言找出一个二维数组的鞍点-程序员宅基地

C语言找鞍点_c语言找出一个二维数组的鞍点

调用SuspendThread函数需要注意的问题-程序员宅基地

在实际环境中,调用SuspendThread时必须小心,因为不知道暂停线程运行时它在进行什么操作。如果线程试图从堆栈中分配内存,那么该线程将在该堆栈上设置一个锁。当其他线程试图访问该堆栈时,这些线程的访问就被停止,知道第一个线程恢复运行 。只有确切知道目标线程是什么(或者目标线程正在做什么),并且采取强有力的措施来避免因暂停线程的运行而带来的问题或死锁状态,suspendThread才是安全的。_suspendthread

TestFlight——完美的iOS app测试方案-程序员宅基地

转载本文请保留以下原作者信息: 原作:onevcat http://www.onevcat.com/2012/01/testflight/2014.5.3补充TestFlight 现在已经修成正果,被 Apple 高价收购。虽然很遗憾不能再支持 Android 版本,但是有理由相信在 Apple 旗下的 TestFlight 将被深度整合进 Apple 开发的生态体系,

Flume(自定义拦截器)_flume pom.xml-程序员宅基地

flume(自定义拦截器)1、在pom.xml文件中导入依赖 &amp;amp;amp;lt;!-- flume核心依赖 --&amp;amp;amp;gt; &amp;amp;amp;lt;dependency&amp;amp;amp;gt; &amp;amp;amp;lt;groupId&amp;amp;amp;gt;org.apache.flume&amp;amp;amp;lt;/groupId_flume pom.xml

from .cv2 import * ImportError: DLL load failed: 找不到指定的模块。问题_from .cv2 import *dll load failed: 找不到指定的模块。-程序员宅基地

本文主要解决以下问题: from .cv2 import * ImportError: DLL load failed: 找不到指定的模块。一、背景毕业设计项目环境突然崩掉了。在windows上面tensorflow至少3.5以上,我安装tensorflow把python升为3.6,然后opencv-python就不行了,还报错 from .cv2 import * ImportEr..._from .cv2 import *dll load failed: 找不到指定的模块。

推荐文章

热门文章

相关标签