1、里面貌似有个输出的路径,但是程序执行完毕后没有看到那里有转出h264文件( 生成了,只是没法用vlc这样的工具播放(貌似是格式错误),原始的yuv是可以播放的 )
2、我想把输出模式改为baseline,NVVE_PROFILE_LEVEL设置为baseline后,NVCreateHWEncoder函数就会返回错误,请问simple的测试程序中的配置转码的cfg文件我还应该改什么参数?
1、里面貌似有个输出的路径,但是程序执行完毕后没有看到那里有转出h264文件( 生成了,只是没法用vlc这样的工具播放(貌似是格式错误),原始的yuv是可以播放的 )
2、我想把输出模式改为baseline,NVVE_PROFILE_LEVEL设置为baseline后,NVCreateHWEncoder函数就会返回错误,请问simple的测试程序中的配置转码的cfg文件我还应该改什么参数?
楼主你好,我不懂H.264, 建议您等待其他会员、版主、NVIDIA原厂支持或者总版主为您解答。
感谢来访。
第一个问题中 simple中自带的plush_480p_60fr。yuv本来就无法播放,转出来的h264文件也无法播放,我找了一个可以播放的yuv文件转码后的h264依然无法播放
第二个问题解决了,只需要把i和p帧的间隔改为1就好了,都不需要设置模式
h264文件你可以用elecard eyestream打开
如果要用vlc播放裸h264文件,要求最开始是sps pps的头,你可以用ue编辑一下,删掉前面一点字节,vlc就可以播放了
sps一般为 00 00 00 01 67 42。。。(baseline的情况)
好!感谢诸君的宝贵经验和踊跃发言。
论坛的兴旺离不开你们!!
周末愉快!!
elecard streameye确实可以播放,但是ffmpeg不能播放,我对比了下能播放的和不能播放的,实例代码生成的比从其他地方找来的文件前面多了6个字节,可是删了依然不管用,但是客户端程序只能选择ffmpeg,请问前面那个几个字节是作何使用的? google什么关键字可以找到相关文档呢? 谢谢
vlc播放裸h264文件一般文件后缀为.h264,我这边试了是可以的。然后win下用ffmpeg(0.8版)的dll库,也能解码。"多出的那些字节"解码时可以一起放进去,没有影响,所以可能是你处理上有些问题。
"多出的那些字节"是H.264标准里的一部分,文档直接找h264的官方文档(itu里能找到,google一下应该有人翻译成中文的了)
”前面多了6个字节“是nal_unit_type=9的情况,文档的7.4.1节里有说明“访问单元分隔符”,其实里面应该还有 nal_unit_type=6的情况辅助增强信息 (SEI)
你要相信ffmpg肯定能解这种码流,因为nvidia出的流是符合h264标准的,如果你的ffmpeg是自己简化的就不确定了
e 我在小米盒子乐视盒子上无法播放,这些盒子采用的硬解,[letv.hw.ver]: [HD6027-AML8726M6-V1.0-PN1212A]这是乐视盒子的版本号,
播放的时候返回
Unsupperted LATM configuration: 12 programs/ 1 subframes, 6layers, allstreams:1
versionA not supported
could not create extractor
但是例子中的yuv文件没有音频信息啊,ai资料太少,
你这盒子这么私有的东西都出来了,恐怕很难有人能帮你解答了。一般硬件解码都是缩减版的解码器,碰到不认识的特性肯定就解不了,还有它需要什么格式的数据你都需要从盒子本身去了解,你自己努力去折腾吧,祝好运~~
ok 谢了:)
非常感谢,问题解决了, 解决方法很2, 首先把要输出的文件扩展名改为h264,默认是264,然后用二进制编辑工具将输出的h264文件的最前面6个字节删掉,ok vlc可以播放了,我以前都只是做了其中一步,所以都没有播放成功,如此sb的一个问题浪费了我一周的时间,我很想说vlc这么大的工具为什么不去读文件头而是通过扩展名来判断文件类型的