微信微信小程序成语猜猜看看御史第61关

所有回答(3)
拿走100分 ,可能会送命。
园豆:1549
那个库没问题。
如果1.h264等每个文件是一帧,没有其它元数据。不需要avformat_open_input()av_find_stream_info()av_read_frame()等函数,直接完整读取文件,构造一个AVFrame进行解码就行了。
&&&您需要以后才能回答,未注册用户请先。1093人阅读
android(152)
1、在编写xml布局的时候,总是提示[Accessibility] Missing contentDescription attribute on image的警告信息
解决方法:
&ImageView
android:layout_width=&210dp&
android:layout_height=&32dp&
android:layout_centerHorizontal=&true&
&ImageView
android:layout_width=&210dp&
android:layout_height=&32dp&
android:layout_centerHorizontal=&true&
android:contentDescription=&组件的描述内容&
&2、在android编写布局的时候,我们有时候需要将一个类封装成一个组件来使用,那么体现在界面上的方法有两种,1.xml布局,2.代码编写
第一种:xml布局
如果是xml布局需要注意两点
a.类的构造方法中必须添加
public 类名(Context context, AttributeSet attribute) {
b.在xml中的形式如下:
&包名.类名
第二种代码布局,只需要构造
public 类名(Context context) {
3、在播放音频的时候使用AudioTrack来实现,但是多次实现audioTrack.play,audioTrack.stop会出现如下现象:
obtainBuffer() track 0x17c418 disabled, restarting
在循环使用AudioTrack.write(byte[] audioData, int offsetInBytes, int sizeInBytes)写入音频数据时,由于网络原因和处理数据代码逻辑乱的原因,音频数据没及时发送过来
解决方案:
这个方法可能只限于我现在产生这种现象的解决方案:
描述:通过socket来接收aac数据,我取一帧来然后通过faad来解码成pcm码流,然后放在audioTrack里面播放,但是我是先初始化audioTrack.play,然后接收aac数据,调用faad解码成pcm数据,最后把pcm数据写到audioTrack里面播放声音。
解决方法:
造成这种现象的原因在上面已经写出,由于数据没有及时的写入造成的,所以我这边只初始化audioTrack实例,但不马上进行audioTrack.play(),只有第一次来数据的时候才进行audioTrack.play,这样就解决了我现在的问题。
* 播放音频
public void playvideo(byte[] data){
if (AppInforToSystem.islistening && aAudio != null && aAudio.getPlayState() == AudioTrack.PLAYSTATE_STOPPED) {
aAudio.play();
aAudio.write(data, 0, 8192);
}else if (AppInforToSystem.islistening && aAudio != null && aAudio.getPlayState() == AudioTrack.PLAYSTATE_PLAYING) {
aAudio.write(data, 0, 8192);
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1779537次
积分:16129
积分:16129
排名:第608名
原创:199篇
转载:41篇
评论:780条
文章:16篇
阅读:100252
文章:19篇
阅读:170537
文章:10篇
阅读:222024
(1)(1)(2)(2)(4)(1)(4)(2)(5)(4)(2)(1)(2)(1)(9)(3)(3)(10)(4)(9)(7)(6)(9)(12)(3)(21)(14)(21)(14)(25)(7)(19)(18)h264检测是I帧还是P帧,解决录像第一帧有马赛克问题_文档库
文档库最新最全的文档下载
当前位置: & h264检测是I帧还是P帧,解决录像第一帧有马赛克问题
h264检测是I帧还是P帧,解决录像第一帧有马赛克问题
h264检测是I帧还是P帧,解决录像第一帧有马赛克问题 最近使用h264码流数据进行录像,但是录出来的第一帧有马赛克,究其原因是录像的第一帧不是关键帧,所以需要录像是需要判断第一帧是否是关键帧,方法有两种,第一种是原码流的基础上查找,第二种是将原码流传递给ffmpeg让ffmpeg判断key_frame,第二种相对简单,但是由于这样一来录像和解码视频切合的太紧密,之后修改比较麻烦,所以选择第一种方案,查看注释1可以明白如何检测h264码流的关键帧,下面是我截取原码流的关键帧和p帧
0000000 :是sps
: 是帧类型
关键帧类型:
1. 0000000: 42 401f
....gB@..T......
2. 0000010: a000
ce38 8000 0000 0165 8880
.....h.8.....e..
3. 01 f11 d84d 5fff fb3b c28a
@..1 .O..M_..;..
4. bc fc83 03db b3e3
...........Y...,
5. 0000040: df55 fdf6 a e766 bd4b fbea 05af
.U.....*.f.K....
1. 0000000: 42 401f
....gB@..T......
2. 0000010: a000
ce38 8000 0000 0141 9a02
.....h.8.....A..
Word文档免费下载:
H264--1--编码原理以及I帧B帧P帧_信息与通信_工程科技_专业资料。H264--1--编码原理以及I帧B帧P帧H264--1--编码原理以及 I 帧 B 帧 P 帧前言 ---H...针对这一问题,提出了一种新的H.264帧层码率控制...对场景切换和 编码复杂度比较有较好的检测能力,但...P帧,则第i帧和第i—l帧之间的'BH为o” ‰一1...trial version
H.264概述1 ? ...H.264除了支持I帧、P帧和B帧外,还支持 新的码流...定义了对本标准其 他的部分进行一致性测试的程序。...I 帧(I frame)——帧内解码图像 在 MPEG 编码的过程中,部分视频帧序列压缩成为 I 帧;部分压缩成 P 帧;还有部分压缩成 B 帧。I帧 法是帧内压缩法, 也称...3667人阅读
多媒体开发(44)
android(152)
最近使用h264码流数据进行录像,但是录出来的第一帧有马赛克,究其原因是录像的第一帧不是关键帧,所以需要录像是需要判断第一帧是否是关键帧,方法有两种,第一种是原码流的基础上查找,第二种是将原码流传递给ffmpeg让ffmpeg判断key_frame,第二种相对简单,但是由于这样一来录像和解码视频切合的太紧密,之后修改比较麻烦,所以选择第一种方案,查看注释1可以明白如何检测h264码流的关键帧,下面是我截取原码流的关键帧和p帧
0000000 :是sps
0000000& :& 是pps
<span style="color:#00000& : 是帧类型
关键帧类型:
0000000: 42 401f
....gB@..T......
0000010: a000
ce38 8000 0000 0165 8880
.....h.8.....e..
01 f11 d84d 5fff fb3b c28a
@..1 .O..M_..;..
bc fc83 03db b3e3
...........Y...,
0000040: df55 fdf6 a e766 bd4b fbea 05af
.U.....*.f.K....
0000000: 42 401f
....gB@..T......
0000010: a000
ce38 8000 0000 0141 9a02
.....h.8.....A..
86 7cb9 f90 7f1f 1930 7eef
..|..%W......0~.
83 bebd 2cc5
390b 46dc d4a5
c...,.6'..9.F...
9840 fba3 1dd6 800f 2242
wK4.W..@......&B
16 080f 8f8d 84c6 09aa cda6 363d 00da
............6=..
0000060: b563 4392 bc65 93e2 63bb 6d30 472e 3ef1
.cC..e..c.m0G.&.
5d 6a3f 36c3 2f7d 6b1e 3c91 d15d d687
T]j?6./}k.&..]..
所以在代码中需要检索第29个字节,来判断是65还是41,
public static String byteToHexString(byte src){
StringBuilder stringBuilder = new StringBuilder(&&);
int v = src & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() & 2) {
stringBuilder.append(0);
stringBuilder.append(hv);
return stringBuilder.toString();
private boolean isFirstIFrame =
private String IFrame = &65&;//关键帧是0x65
//bArrayImage是存放h264原码流字节数组
if (是在录像) {
&& &&& &&& &&& &if (isFirstIFrame) {
&& &&& &&& &&& &&& &String type = byteToHexString(bArrayImage[29]);
&& &&& &&& &&& &&& &if (type.equals(IFrame)) {&& &//第29个字符是判断帧的类型
&& &&& &&& &&& &&& &&& &isFirstIFrame =
&& &&& &&& &&& &&& &&& &ShootingVideoData(bArrayImage, Video_Data_iVideoLen);//录制第一帧:关键帧
&& &&& &&& &&& &&& &}
&& &&& &&& &&& &}else {
&& &&& &&& &&& &&& &ShootingVideoData(bArrayImage, Video_Data_iVideoLen);
&& &&& &&& &&& &}
&& &&& &&& &}
这样在录制出的第一帧录像就没有马赛克了。
注释1:检测h264中I帧,P帧
原文链接:
今天在网上找了一些资料,知道了如何检测h264中的帧类型,在这里记录下来。
首先,贴出nal单元类型定义(图从《新一代视频压缩编码标准H.264》摘录):
假设一段h264的码流为:00 00 00 01 41 E6 60……
其中的00 00 00 01为起始码,而起始码之后的下一个字节就可以检测出这一帧的类型。
在上面的码流中起始码之后的字节位 0x41,换算成二进制为 。
注:我解读顺序为从左往右算。
(1)第1位禁止位,&#20540;为1表示语法出错
(2)第2~3位为参考级别
(3)第4~8为是nal单元类型,在此处为 0 0001换算成十进制为1。根据上图可知道这段码流是【不分区、非IDR图像的片】,在baseline的档次中就是P帧,因为baseline没有B帧。
如果是另一段码流:00 00 00 01
那么根据0x65字节(011<span style="color:#ff1)根据后5位换算十进制为5,也就是【IDR图像中的片】,即I帧。
用代码的方式可以这样写,int type = 0x65 & 0x1f,然后根据type在表中查找即可获得需要的结果。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1779539次
积分:16129
积分:16129
排名:第608名
原创:199篇
转载:41篇
评论:780条
文章:16篇
阅读:100252
文章:19篇
阅读:170537
文章:10篇
阅读:222024
(1)(1)(2)(2)(4)(1)(4)(2)(5)(4)(2)(1)(2)(1)(9)(3)(3)(10)(4)(9)(7)(6)(9)(12)(3)(21)(14)(21)(14)(25)(7)(19)(18)DM8168芯片使用DVRRDK_02.80.00.10版本,编码出来的I帧比P帧大了很多 - 达芬奇(Davinci(TM)) - 德州仪器在线技术支持社区
DM8168芯片使用DVRRDK_02.80.00.10版本,编码出来的I帧比P帧大了很多
发表于3年前
<input type="hidden" id="hGroupID" value="33"
DM8168芯片使用DVRRDK_02.80.00.10版本,编码出来的I帧比P帧大了很多,效果见附件,怎样设置编码参数才能使I帧不会大很多。&/p>
&p>我这边试图设置qpInitI,qpMaxI,qpMinI ,qpP,qpMaxP,qpMinP参数,如果把qpMinI设置比qpMinP大很多的话,I帧之后的P帧会大于I帧,并且后面的P帧还是比较小,两个P帧之间还是相差很大,小的P帧很多skip块。&/p>
&p>还设置了&minPicSizeRatioI,maxPicSizeRatioI,minPicSizeRatioP,maxPicSizeRatioP&,也不起作用。&/p>&div style=&clear:&>&/div>" />
DM8168芯片使用DVRRDK_02.80.00.10版本,编码出来的I帧比P帧大了很多
此问题尚无答案
All Replies
DM8168芯片使用DVRRDK_02.80.00.10版本,编码出来的I帧比P帧大了很多,效果见附件,怎样设置编码参数才能使I帧不会大很多。
我这边试图设置qpInitI,qpMaxI,qpMinI ,qpP,qpMaxP,qpMinP参数,如果把qpMinI设置比qpMinP大很多的话,I帧之后的P帧会大于I帧,并且后面的P帧还是比较小,两个P帧之间还是相差很大,小的P帧很多skip块。
还设置了&minPicSizeRatioI,maxPicSizeRatioI,minPicSizeRatioP,maxPicSizeRatioP&,也不起作用。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
顺便在问一下,我看文档上说可以去掉帧宏块的skip处理,但是我没有找到设置的参数,知道的可否告之。
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
去掉skip宏块的问题已经解决。
dynamicParams-&interCodingParams.interCodingPreset =IH264_INTERCODING_USERDEFINED; &&&
dynamicParams-&interCodingParams.interCodingBias = IH264_BIASFACTOR_DEFAULT; &&&
&dynamicParams-&interCodingParams.skipMVCodingBias = IH264_BIASFACTOR_LOW;
但是还是存在I帧和P帧大小相差很大的问题,请问有办法让码流的帧大小比较平滑吗?
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
你好,我也遇到这个问题,怎么设置参数呢,谢谢
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
状元71703分
I帧比P帧大,可以减少图像运动时候的呼吸效应。你希望I帧不太大的原因是什么?网络?
如果我的回答解决了你的问题,请点击绿色&是&按钮,谢谢!
You have posted to a forum that requires a moderator to approve posts before they are publicly available.

我要回帖

更多关于 微信成语猜猜看 的文章

 

随机推荐