-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
10 lines (10 loc) · 9.87 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="X-UA-Compatible" content="IE=edge"><title> catinsides.github.io</title><meta name="description" content="A Blog Powered By Hexo"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon" href="/favicon.png"><link rel="stylesheet" href="/css/apollo.css"><link rel="search" type="application/opensearchdescription+xml" href="https://catinsides.github.io/atom.xml" title="catinsides.github.io"><meta name="generator" content="Hexo 7.1.1"><link rel="alternate" href="/atom.xml" title="catinsides.github.io" type="application/atom+xml">
</head><body><div class="wrap"><header><a href="/" class="logo-link"><img src="/favicon.png" alt="logo"></a><ul class="nav nav-list"><li class="nav-list-item"><a href="/" target="_self" class="nav-list-link active">BLOG</a></li><li class="nav-list-item"><a href="/archives/" target="_self" class="nav-list-link">ARCHIVE</a></li><li class="nav-list-item"><a href="https://github.com/Catinsides" target="_blank" class="nav-list-link">GITHUB</a></li><li class="nav-list-item"><a href="/atom.xml" target="_self" class="nav-list-link">RSS</a></li></ul></header><main class="container"><ul class="home post-list"><li class="post-list-item"><article class="post-block"><h2 class="post-title"><a href="/2025/02/12/%E8%AE%B0%E4%B8%80%E6%AC%A1VOIP%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%BC%80%E5%8F%91%E5%B9%B6%E5%AF%B9%E6%8E%A5AI/" class="post-title-link">记一次VOIP服务端开发并对接AI</a></h2><div class="post-info">2025年2月12日</div><div class="post-content"><p>最近接到了一个新需求,是通过 WebRTC 通话对接到一个 AI 语音助手。 </p>
<p>现在正是 AI 的大热潮,做这样一个功能,也是个好机会,可以学习一下相关知识。 </p></div><a href="/2025/02/12/%E8%AE%B0%E4%B8%80%E6%AC%A1VOIP%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%BC%80%E5%8F%91%E5%B9%B6%E5%AF%B9%E6%8E%A5AI/" class="read-more">...more</a></article></li><li class="post-list-item"><article class="post-block"><h2 class="post-title"><a href="/2024/08/07/%E8%AE%B0%E4%B8%80%E6%AC%A1%E6%B5%8F%E8%A7%88%E5%99%A8%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E7%BB%8F%E5%8E%86/" class="post-title-link">记一次浏览器插件开发经历</a></h2><div class="post-info">2024年8月7日</div><div class="post-content"><p>最近做了一个浏览器插件的项目,私以为还是比较有意思的,在此记录一下经历。 </p>
<p>这个浏览器插件的主要功能是,提供一个拨号盘界面,可以进行呼入、呼出的功能。再额外添加一些围绕着呼叫的辅助功能,比如:联络记录,通讯录,弹屏等等。 </p></div><a href="/2024/08/07/%E8%AE%B0%E4%B8%80%E6%AC%A1%E6%B5%8F%E8%A7%88%E5%99%A8%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91%E7%BB%8F%E5%8E%86/" class="read-more">...more</a></article></li><li class="post-list-item"><article class="post-block"><h2 class="post-title"><a href="/2024/04/01/%E8%AE%B0%E4%B8%80%E6%AC%A1%E5%BD%95%E9%9F%B3%E8%BD%AC%E5%86%99%E9%A1%B9%E7%9B%AE%E7%BB%8F%E5%8E%86%E4%B8%AD%E7%9A%84%E6%8A%80%E6%9C%AF%E7%82%B9/" class="post-title-link">记一次录音转写项目经历中的技术点</a></h2><div class="post-info">2024年4月1日</div><div class="post-content"><p>最近做了一个录音转写的项目,其中有一些自认为有意思的技术点,在此记录一下。</p>
<h2 id="实时通话中的录音推流"><a href="#实时通话中的录音推流" class="headerlink" title="实时通话中的录音推流"></a>实时通话中的录音推流</h2></div><a href="/2024/04/01/%E8%AE%B0%E4%B8%80%E6%AC%A1%E5%BD%95%E9%9F%B3%E8%BD%AC%E5%86%99%E9%A1%B9%E7%9B%AE%E7%BB%8F%E5%8E%86%E4%B8%AD%E7%9A%84%E6%8A%80%E6%9C%AF%E7%82%B9/" class="read-more">...more</a></article></li><li class="post-list-item"><article class="post-block"><h2 class="post-title"><a href="/2024/03/28/Hello-Again/" class="post-title-link">Hello Again</a></h2><div class="post-info">2024年3月28日</div><div class="post-content"><p>时隔多年,终于把废弃的博客救回来了。 </p>
<p>找了个简洁的博客主题,不搞花里胡哨。 </p></div><a href="/2024/03/28/Hello-Again/" class="read-more">...more</a></article></li><li class="post-list-item"><article class="post-block"><h2 class="post-title"><a href="/2019/07/17/%E5%85%B3%E4%BA%8E%E6%8B%93%E5%B1%95NodeMediaServer%E4%BB%A5%E6%94%AF%E6%8C%81JT1078/" class="post-title-link">关于拓展NodeMediaServer以支持JT1078</a></h2><div class="post-info">2019年7月17日</div><div class="post-content"><h3 id="Jul-13-2019"><a href="#Jul-13-2019" class="headerlink" title="Jul. 13, 2019"></a>Jul. 13, 2019</h3><p>可能与最近几月坚持跑步有关,头脑突然灵活了很多。</p></div><a href="/2019/07/17/%E5%85%B3%E4%BA%8E%E6%8B%93%E5%B1%95NodeMediaServer%E4%BB%A5%E6%94%AF%E6%8C%81JT1078/" class="read-more">...more</a></article></li><li class="post-list-item"><article class="post-block"><h2 class="post-title"><a href="/2019/03/29/JT1078%E5%8D%8F%E8%AE%AE%E5%BC%80%E5%8F%91%E4%B9%8B%E5%8F%8C%E5%90%91%E5%AF%B9%E8%AE%B2%E5%90%8E%E8%AE%B0/" class="post-title-link">JT1078协议开发之双向对讲后记</a></h2><div class="post-info">2019年3月29日</div><div class="post-content"><h3 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h3><p>上一篇大致介绍了一下实时视频的开发流程,这一篇所要介绍的双向对讲算是上一篇内容的小进阶。由 JT/T 1078协议(以下简称1078)中介绍可知,双向对讲的数据传输方式也是在 <strong>5.5.3</strong> 表19中定义的。下达双向对讲指令通过改变修改 <strong>0x9101</strong> 消息ID中的参数来实现,本篇不再赘述。功能实现思路与上一篇相同,使用 <strong>nodejs</strong> 和 <strong>FFmpeg</strong> 实现。测试系统环境为 <strong>Linux</strong> .</p></div><a href="/2019/03/29/JT1078%E5%8D%8F%E8%AE%AE%E5%BC%80%E5%8F%91%E4%B9%8B%E5%8F%8C%E5%90%91%E5%AF%B9%E8%AE%B2%E5%90%8E%E8%AE%B0/" class="read-more">...more</a></article></li><li class="post-list-item"><article class="post-block"><h2 class="post-title"><a href="/2019/03/16/JT1078%E5%8D%8F%E8%AE%AE%E5%BC%80%E5%8F%91%E4%B9%8B%E5%AE%9E%E6%97%B6%E8%A7%86%E9%A2%91%E5%90%8E%E8%AE%B0/" class="post-title-link">JT1078协议开发之实时视频后记</a></h2><div class="post-info">2019年3月16日</div><div class="post-content"><h3 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h3><p>前几个月一直在进行JT/T 1078协议(以下简称1078)相关项目的开发,其中涉及各种音视频协议和网络协议,还有音视频服务器和处理软件的知识。从一开始处于知识盲区的我,一路摸爬滚打,google和阅读书籍,挖坑填坑,总算是把项目需要的功能给研究出来了。当然,1078本身描述的功能很多,全部实现需要大量的人力和时间,一篇文章也不可能讲完。所以,打算用两篇文章主要记录一下实时视频和双向对讲的实现方法。这一篇为实时视频,双向对讲放在下一篇。功能皆使用 <strong>nodejs</strong> 和 <strong>FFmpeg</strong> 实现,系统环境为 <strong>Linux</strong> .</p></div><a href="/2019/03/16/JT1078%E5%8D%8F%E8%AE%AE%E5%BC%80%E5%8F%91%E4%B9%8B%E5%AE%9E%E6%97%B6%E8%A7%86%E9%A2%91%E5%90%8E%E8%AE%B0/" class="read-more">...more</a></article></li><li class="post-list-item"><article class="post-block"><h2 class="post-title"><a href="/2018/12/31/2018%E9%83%BD%E5%81%9A%E4%BA%86%E4%BA%9B%E4%BB%80%E4%B9%88/" class="post-title-link">2018都做了些什么</a></h2><div class="post-info">2018年12月31日</div><div class="post-content"><blockquote>
<p>不要高估一天能做到的事,也不要低估一年能做到的事。</p>
</blockquote>
<p>我这个人是拒绝鸡汤的。偶然在V2里看到这句话,思考了一下,也确实有一些道理。回想到去年此时的自己,怎么也想不到会学习了这么多的新技能。每天学习一点点,日积月累,真的很重要。</p></div><a href="/2018/12/31/2018%E9%83%BD%E5%81%9A%E4%BA%86%E4%BA%9B%E4%BB%80%E4%B9%88/" class="read-more">...more</a></article></li><li class="post-list-item"><article class="post-block"><h2 class="post-title"><a href="/2017/07/03/%E7%BB%99console.log%E4%B8%80%E7%82%B9%E9%A2%9C%E8%89%B2%E7%9C%8B%E7%9C%8B/" class="post-title-link">给console.log一点颜色看看</a></h2><div class="post-info">2017年7月3日</div><div class="post-content"><p>开发中少不了使用console.log进行调试,那么如何使打印出的内容具有颜色呢?</p>
<p>首先要说明的是,这里指的打印是在命令行中进行输出的,而不是在chrome控制台中。</p></div><a href="/2017/07/03/%E7%BB%99console.log%E4%B8%80%E7%82%B9%E9%A2%9C%E8%89%B2%E7%9C%8B%E7%9C%8B/" class="read-more">...more</a></article></li><li class="post-list-item"><article class="post-block"><h2 class="post-title"><a href="/2017/05/15/JS%E9%87%8E%E7%94%9F%E7%A8%8B%E5%BA%8F%E5%91%98%E8%BF%9B%E4%BF%AE%E6%8C%87%E5%8D%97/" class="post-title-link">JS野生程序员进修指南</a></h2><div class="post-info">2017年5月15日</div><div class="post-content"><h3 id="基本"><a href="#基本" class="headerlink" title="基本"></a>基本</h3><p><code>缩进</code><br>4个空格,而不是一个制表符</p></div><a href="/2017/05/15/JS%E9%87%8E%E7%94%9F%E7%A8%8B%E5%BA%8F%E5%91%98%E8%BF%9B%E4%BF%AE%E6%8C%87%E5%8D%97/" class="read-more">...more</a></article></li></ul></main><footer><div class="paginator"><a href="/page/2/" class="next">NEXT</a></div><div class="copyright"><p>© 2016 - 2025 <a href="https://catinsides.github.io">catinsides</a>, powered by <a href="https://hexo.io/" target="_blank">Hexo</a> and <a href="https://github.com/pinggod/hexo-theme-apollo" target="_blank">hexo-theme-apollo</a>.</p></div></footer></div><script async src="//cdn.bootcss.com/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_CHTML" integrity="sha384-crwIf/BuaWM9rM65iM+dWFldgQ1Un8jWZMuh3puxb8TOY9+linwLoI7ZHZT+aekW" crossorigin="anonymous"></script></body></html>