我已经将我的ffmpeg版本升级到最新的提交.现在我可以看到音频解码功能avcodec_decode_audio3已被弃用,当我使用新功能时avcodec_decode_audio4,根据其中所需的更改,我得到错误为
[amrnb @ 003a5000] get_buffer() failed.
我无法找到导致此错误的原因.任何人都有一个使用这个新功能的示例:
avcodec_decode_audio4((AVCodecContext *avctx, AVFrame *frame,int *got_frame_ptr, AVPacket *avpkt);
我对 Wireshark 中的抖动计算方法有疑问。
Wireshark根据RFC3550(RTP)计算抖动:
如果 Si 是数据包 i 的 RTP 时间戳,Ri 是数据包 i 的到达时间(以 RTP 时间戳为单位),则对于两个数据包 i 和 j,D 可以表示为
D(i,j) = (Rj - Ri) - (Sj - Si) = (Rj - Sj) - (Ri - Si)
当从源 SSRC_n 接收到每个数据包 i 时,应该连续计算到达间隔抖动,按照到达顺序(不一定按顺序)使用该数据包和前一个数据包 i-1 的差值 D,根据公式
J(i) = J(i-1) + (|D(i-1,i)| - J(i-1))/16
现在,这里已经考虑了到达间抖动的绝对值。我的疑问是,为什么当抖动也可能为负时却采用绝对值,我认为如果我们也考虑负抖动,我们将得到更多的实际值,而不是我们目前采用的值
此外,当我们使用上述方法绘制抖动分布图时,它不会以零为中心,因为我们已将所有值设为正值,并且该图看起来不真实。
有人可以澄清我的疑问吗?
我想解码EVRC语音编解码器.我已经检查了ffmpeg库但看起来,ffmpeg目前不支持EVRC.
是否有可用于解码EVRC数据的备用库?
或者,如果有人有一些算法或解码机制或代码片段,请告诉我.
谢谢Nitin
我已经做了一个新的 Linux TCP cong 算法实现,并且在这段代码中有一些静态变量,现在我希望它们通过使用一些配置方法是动态的。
根据我在内核级编程中的理解,我们无法加载一些文本文件并将值放在那里并通过程序读取它..
但我需要其他东西来使这些值动态化,以便用户每次更改值时都可以更改它们而无需编译内核代码。
我听说过可以帮助我们的 proc 条目,但我不确定这是否是正确的方法。不确定 ioctl() 是否也能提供帮助。?
有人可以给出一些关于如何使这些变量动态化的想法,以便我们即时更改它们并设置值。
我想计算TCP数据包的往返时间.
但是在wireshark中,我没有看到任何特定字段用于TCP数据包的RTT时序,就像它的RTP数据包一样.
Wireshark会计算RTT图,但我不知道它是如何计算的.
有人可以帮助我找到用于相同的公式吗?
我想知道语音数据包 RTP 中标记位的重要性,这里是否有任何 RFC 可以说明这一点。
我知道视频数据包标记位意味着同一图像的最后一个数据包,因此,它是具有与图像相对应的 PTS 时间戳的最后一个数据包,但对于编解码器的语音数据包来说,例如 AMR-NB 或 G711 alaw 或 G729,每个 RTP 数据包中的标记位通常为假。
那么,在这种情况下的RTP数据包中,标记位的含义是否发生变化?
问候尼丁
我对ZedGraph有一点不同的要求.
我想在用户点击ZedGraph窗格时在ZedGraph窗格上创建曲线.此外,我在该窗格上绘制了其他图表.但我希望每当用户点击zedGraph区域时,我们就会得到用户点击的坐标,并在点击的坐标上绘制一条直线.
我已经使用FindClarestObject方法使用MouseCLick事件alren,如下所示:
private void zedGraph_RenderedTrack_MouseClick(object sender, EventArgs e)
{
MouseEventArgs xx = (MouseEventArgs)e;
object nearestObject;
int index;
this.zedGraph_RenderedTrack.GraphPane.FindNearestObject(new PointF(xx.X, xx.Y), this.CreateGraphics(), out nearestObject, out index);
if (nearestObject != null)
{
DrawALine(xx.X, Color.Red, true);
}
}
Run Code Online (Sandbox Code Playgroud)
但是使用这个,ZedGraph搜索一些曲线并找到最近的点然后绘制线但我想要在用户点击的地方绘制线.有没有办法这样做?