Total Pageviews

Saturday, 21 December 2024

vue-express-forum

基于vuejs,express,mongodb的多人论坛.

启动应用:

安装依赖

$ npm install

启动Mongod数据库服务,默认监听27017端口

$ mongod --dbpath=/var/mongodb/data -fork --logpath /var/mongodb/logs/log.log

启动服务器

$DEBUG=vue-express-forum && npm start

访问本地服务器3000端口

localhost:3000/

开发

启动webpack服务,hot-reload

$ npm run dev

生产环境

$ npm run build

from https://github.com/laoqiren/vue-express-forum

搭建静态博客程序yohe

npm install yohe -g

yohe init yohe-blog
cd yohe-blog
yohe new test
显示:
create new post test sucessfully! Go to edit file source/_posts/test.md
root@racknerd-626f077:~/yohe-blog# nano source/_posts/test.md
root@racknerd-626f077:~/yohe-blog# cat source/_posts/test.md
---
title: 测试
date: 2024-12-22,00:24:32
layout: post
comment: true
tags: [blog]
categories: code
---

这是测试。

看看如何?

root@racknerd-626f077:~/yohe-blog# yohe build (此命令会在当前目录下,生成public目录)
root@racknerd-626f077:~/yohe-blog# cd public
root@racknerd-626f077:~/yohe-blog/public# ls
2024 about archives assets categories index.html page tags
root@racknerd-626f077:~/yohe-blog/public#
(可见~/yohe-blog/public就是静态网站的根目录)
root@racknerd-626f077:~/yohe-blog/public# netlify deploy
root@racknerd-626f077:~/yohe-blog/public# netlify deploy --prod
root@racknerd-626f077:~/yohe-blog/public# vc --cwd .
(https://briteming.blogspot.com/2016/12/vpsnetlifycom.html) 
演示网站:
https://yhb-5o2tlvigw-luckypoems-projects.vercel.app/
https://yohe.netlify.app/
项目地址:
https://github.com/laoqiren/yohe  
https://github.com/briteming/yohe
这静态博客程序搞得不错,中国人就是聪明,值得点赞。
  
  
 
 
  
 
  

 

 

Cuttlebelle是一个基于React的静态网站生成器


Cuttlebelle是一个基于React的静态网站生成器,允许开发人员快速、轻松地建立灵活、动态的静态网站。

它允许开发人员使用React组件构建网站–这意味着你可以创建可重复使用的组件,这些组件可以使用一个简单的拖放界面来构建页面、部分,甚至整个网站。

Cuttlebelle还支持广泛的内容类型,包括Markdown、JSON和YAML。这使开发人员能够轻松地创建内容丰富的网站,从简单的登陆页面到复杂的网络应用。

虽然Cuttlebelle是一个新的、没有广泛流行的静态网站生成器,在GitHub上的认可度不如Gatsby或Next.js等成熟的选项–但它在欣赏其创建静态网站的独特方法的开发者中拥有忠实的粉丝。

请查看Cuttlebelle的官方文档(https://cuttlebelle.com/documentation/)以了解更多信息。

如何选择最好的React静态网站生成器?

选择最好的React静态网站生成器可能是令人生畏的,特别是在有很多选择的情况下。

为了帮助你做出一个明智的决定,这里有一些关于如何选择最好的React静态网站生成器的提示:

  1. 理解你的需求: 在选择React静态网站生成器之前,你应该了解你的网站的要求。例如,如果你需要一个易于设置和维护的网站,你可能要考虑一个具有简单和直观的用户界面的生成器。另一方面,如果你需要一个高度可定制和可扩展的网站,你可能要考虑一个更先进的生成器。
  2. 社区支持: 社区支持是选择React静态网站生成器时的另一个关键因素。选择一个拥有活跃的开发者社区的生成器,他们可以提供支持并分享技巧和窍门。
  3. 检查灵活性: 你应该选择一个允许你创建满足你特定需求的网站的React静态网站生成器。例如,一些生成器可能更倾向于创建博客,而另一些可能更适合创建文档网站。
  4. 评估性能: 在当今快节奏的数字世界中,网站性能是至关重要的。因此,你应该选择一个能产生快速加载网站的React静态网站生成器。有些生成器会创建臃肿的代码,会减慢页面加载时间。你想要一个能产生高效代码的生成器。
    分析使用的便利性: 你不希望花几个小时来弄清楚如何使用一个复杂的生成器。因此,你应该选择一个易于使用并有良好文档的React静态网站生成器。你也可以寻找带有预制模板和主题的生成器,以使设置过程更加简单明了。

小结

静态网站正变得越来越流行,因为它们比动态网站具有一些优势。它们适用于很少或没有用户互动的网站,如博客、作品集和公司网站。

在速度、安全和成本方面,静态网站通常更快、更安全、更具成本效益,因为它们不需要服务器端处理或数据库。

你是否考虑为你的下一个项目使用React静态网站生成器?

项目地址:https://github.com/cuttlebelle/cuttlebelle

Qwik是一个快速和轻量级的React静态网站生成器

 

Instant-loading web apps, without effort,

qwik.dev

Qwik Logo


Qwik CI Azure SWA Server Cloudflare Pages Server Netlify Server Node Servers Vercel Edge Vercel Serverless Create Qwik CLI Deno Server AWS Server



Instant-loading web apps, without effort

Qwik offers the fastest possible page load times - regardless of the complexity of your website. Qwik is so fast because it allows fully interactive sites to load with almost no JavaScript and pickup from where the server left off.

As users interact with the site, only the necessary parts of the site load on-demand. This precision lazy-loading is what makes Qwik so quick.

Getting Started

npm create qwik@latest
# or
pnpm create qwik@latest
# or
yarn create qwik@latest
# or
bun create qwik@latest

Resources

Community

Development

  • See Contributing.md for more information on how to build Qwik from the source and contribute!

Related

  • Partytown: Relocate resource intensive third-party scripts off of the main thread and into a web worker 🎉.
  • Mitosis: Write components once, run everywhere. Compiles to Vue, React, Solid, Angular, Svelte, and more.
  • Builder: Drag and drop page builder and CMS for React, Vue, Angular, and more.

Special sponsor Builder.io 

from https://github.com/QwikDev/qwik

 

Qwik

Qwik是一个快速和轻量级的React静态网站生成器,对于寻找快速和简单的方式来构建高性能网站的开发者来说,绝对值得一试。

Qwik构建的网站能够快速加载,因为它们在构建时生成静态HTML和JavaScript页面。它们不需要在运行时进行服务器端渲染或执行JavaScript。重要的是,Qwik也对其他网络技术有坚实的支持,包括Webpack、Babel和TypeScript。

它使用预渲染和缓存,以尽量减少服务器请求并加快页面加载速度–使Qwik构建的网站提供闪电般的性能,即使在缓慢或不可靠的网络上。

总的来说,Qwik具有以下独特优势:

  1. 它被设计为快速和高效。
  2. 它的开发工作流程被设计为简单而直观。
  3. 它是高度灵活和可定制的,有大量的插件和选项可供选择,以满足各种需求。
  4. 它被设计成对搜索引擎友好,内置对元数据标签和结构化数据的支持。

Qwik被用来建立这么多的网站,正如在他们的案例展示中看到的那样,它可以用来建立各种形式的静态网站,如组合网站和登陆页面。你可以通过其官方文档了解更多。

搭建静态博客程序 svelte-QWER

 首先搭建nodejs环境。然后,

npm install -g pnpm
git clone https://github.com/kwchang0831/svelte-QWER
cd svelte-QWER
pnpm install
pnpm build (此即生成/更新静态网站的根目录的命令。此命令会在当前目录下生成build目录) 

cd build

$ ls
 _app/               example.html      manifest.webmanifest   versions.json
 about.html          favicon.ico       quick-start.html      
 atom.xml            favicon.png       robots.txt            '~partytown'/
 feed.json         service-worker.js
 hello-QWER.html   sitemap.xml
 example/       index.html

(可见~/svelte-qwer/build目录就是静态网站的根目录)

新建源帖:

cd ~/svelte-qwer/user/blogs

~/svelte-qwer/user/blogs (main) $ ls
about/  example/  hello-QWER/  quick-start/ 
~/svelte-qwer/user/blogs (main) $ mkdir test

~/svelte-qwer/user/blogs (main) $ cp quick-start/* test/

~/svelte-qwer/user/blogs (main) $ cd test

~/svelte-qwer/user/blogs/test (main) $ ls
cover.jpg  index.md 

~/svelte-qwer/user/blogs/test (main) $  nano index.md

~/svelte-qwer/user/blogs/test (main) $ cat index.md

显示:

---
title: 测试
description: good
summary: ✨ 测试一下
published: '2024-12-21T10:20:00.000+08:00'
updated: '2024-12-21T10:20:00.000+08:00'
cover: ./cover.jpg
coverCaption: Photo by <a href="https://unsplash.com/ja/@mxhpics?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Maxime Horlaville</a> on <a href="https://unsplash.com/s/photos/start?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
tags:
  - [QWER]
---

测试一下。

看看如何?


cd ~/svelte-qwer/

pnpm build
然后上传~/svelte-qwer/build目录的内容到https://app.netlify.com/drop,得到网址-
演示网址:https://scintillating-cat-bfdf34.netlify.app/
项目地址:https://github.com/kwchang0831/svelte-QWER
 
 


 



 




 

静态站点托管平台

 Bitbucket Cloud

https://support.atlassian.com/bitbucket-cloud/docs/publishing-a-website-on-bitbucket-cloud/

跟 GitHub Pages 的功能一样,但是:
    无法自定义域名
    能且只能通过 https 协议访问(http 协议会被跳转到 https 协议)
    所有项目的静态网站代码都只能放在专门的站点仓库里(accountName.bitbucket.io),不能像 GitHub 那样可以在每个项目里用 gh-   pages 分支保存文件
----------------------------

免费好用的静态托管平台4EVERLAND

 4EVERLAND是一个新兴的静态页面托管平台,提供40GB免费存储空间和无限流量,仅需Github授权登录。它支持Vue.js、Next.js、Nuxt.js、React等框架的快速部署,自动分配二级域名并支持自定义域名和SSL部署。虽然目前节点主要在境外,但访问体验良好.

https://www.4everland.org/
------------------------------------

https://about.gitlab.com/blog/2016/04/07/gitlab-pages-setup/

一个强大的静态站点部署平台:Meli


Meli 是一个开源的静态站点和前端应用部署平台,它提供了简单易用的接口和强大的功能集,使得发布前端项目变得更加便捷高效。

项目介绍

Meli 平台以其出色的管理界面和丰富的特性,改变了传统的前端部署方式。通过它,你可以轻松创建无限数量的静态站点,并为它们设置自定义域名,支持多组织、团队和用户管理。此外,Meli 还提供了诸如 Webhooks、Slack 和 Mattermost 等多种集成选项,以满足你的协作需求。

Meli demo screenshot

技术分析

Meli 基于 Docker Compose 部署和升级,确保了系统的稳定性和易用性。其API带有精细的权限控制,便于实现安全的数据交互。同时,Meli 支持 Letsencrypt 或私人 ACME 服务器自动签发 HTTPS 证书,保证了数据传输的安全性。开发过程中,Meli 提供了详细的文档,包括安装指南、分支管理和认证机制,让你可以快速上手并深度定制。

应用场景

  1. 个人博客 - 使用 Meli 快速部署个性化博客,并通过自定义域名展示。
  2. 企业网站 - 多团队协作开发,每个部门或项目可拥有独立站点。
  3. 软件产品演示 - 将不同的版本或分支作为单独的演示站,方便客户体验。
  4. 敏捷开发 - 持续集成过程中,为每次代码提交生成预览链接,以便团队成员和客户即时反馈。

项目特点

  1. 无限站点与分支 - 可在同一个主域名下部署无数个站点和分支。
  2. 自定义域名与 HTTPS - 自动化的 HTTPS 证书管理,让每个站点都能安全访问。
  3. 多用户管理 - 组织、团队和用户管理,支持权限分配,易于协作。
  4. API 定制 - 精细的 API 权限控制,可以构建扩展的功能。
  5. 集成友好 - 支持 Webhooks、Slack、Mattermost 等集成,提升工作效率。
  6. 可配置性强 - 可以进行大量环境变量级别的自定义,以适应不同需求。

总的来说,Meli 是一个强大且灵活的静态站点部署解决方案,无论是小型项目还是大型企业的复杂需求,都能游刃有余地应对。如果你正在寻找一个能够提升前端开发效率的工具,那么 Meli 绝对值得尝试。现在就前往官方文档开始你的 Meli 之旅吧!

https://docs.meli.charlie-bravo.be/

https://github.com/getmeli/meli

Windows直接获取文件的hash值

 C:\Users\12799\Desktop>certutil -hashfile boa.jpg
SHA1 的 boa.jpg 哈希:
7f0917d6838f13fe09d1f6cafccf8ed7fe37535b
CertUtil: -hashfile 命令成功完成。

C:\Users\12799\Desktop>

Friday, 20 December 2024

cabal的windows 版

 https://downloads.haskell.org/~cabal/cabal-install-latest/cabal-install-3.14.1.0-x86_64-windows.zip

Thursday, 19 December 2024

gin-haskell

 Gin is a static blog generator written in haskell which transforms your posts to github issues as static blog automatically.

Do you want to use your github issues as a static website like this? Gin can help you!

Gin is a project written in haskell which can parser your posts and transform them to github issues automatically.

Features

✅ Support Markdown grammar that Github supports (because I just upload your post with a few midifications 😜)

✅ Support creating and modifying your issues posts locally

✅ Support LaTeX grammar

✅ Support post tags

✅ Support some extension grammars

There is an example.

Installation

Please install cabal or haskell-platform first.

git clone https://github.com/zeqing-guo/gin-haskell.git & cd gin-haskell
cabal sandbox init --only-dependencies
cabal install

Usage

➜  gin -h
Usage: gin [-inphv] [file]
  -i DIR   --init=DIR  Create a blog including a config file and an example post
  -n FILE  --new=FILE  Create a post
  -p       --publish   Publish new and modified posts on Github
  -h       --help      Print this help message
  -v       --version   Show gin's version

➜  gin -i blog
Copy data to blog

➜  cd blog 
➜  gin -n "a new post"
Create post/2015-12-12 a new post.md

➜  echo "\n> hello world" >> post/2015-12-12\ a\ new\ post.md
➜  gin -p 
Upload a new post...
All posts have been updated

Note that you need to fill the _config.yml file to make gin work.

You can get a github token from https://github.com/settings/tokens, and public_repo is enough.

You can insert your copyright statement using {{ copyright }}.

from https://github.com/zeqing-guo/gin-haskell

 

王小波:工作与人生

 我现在已经活到了人生的中途,拿一日来比喻人的一生,现在正是中午。人在童年时从朦胧中醒来,需要一些时间来克服清晨的软弱,然后就要投入工作;在正午时分,他的精力最为充沛,但已隐隐感到疲惫;到了黄昏时节,就要总结一日的工作,准备沉入永恒的休息。按我这种说法,工作是人一生的主题。这个想法不是人人都能同意的。我知道在中国,农村的人把生儿育女看作是一生的主题。把儿女养大,自己就死掉,给他们空出地方来------这是很流行的想法。在城市里则另有一种想法,但不知是不是很流行:它把取得社会地位看作一生的主题。站在北京八宝山的骨灰墙前,可以体会到这种想法。我在那里看到一位已故的大叔墓上写着:副系主任、支部副书记、副教授、某某教研室副主任,等等。假如能把这些"副"字去掉个把,对这位大叔当然更好一些,但这些"副"字最能证明有这样一种想法。顺便说一句,我到美国的公墓里看过,发现他们的墓碑上只写两件事:一是生卒年月,二是某年至某年服兵役;这就是说,他们以为人的一生只有这两件事值得记述:这位上帝的子民曾经来到尘世,以及这位公民曾去为国尽忠,写别的都是多余的,我觉得这种想法比较质朴......恐怕在一份青年刊物上写这些墓前的景物是太过伤感,还是及早回到正题上来罢。

  **我想要把自己对人生的看法推荐给青年朋友们:人从工作中可以得到乐趣,这是一种巨大的好处。**相比之下,从金钱、权力、生育子女方面可以得到的快乐,总要受到制约。举例来说,现在把生育作为生活的主题,首先是不合时宜;其次,人在生育力方面比兔子大为不如,更不要说和黄花鱼相比较;在这方面很难取得无穷无尽的成就。我对权力没有兴趣,对钱有一些兴趣,但也不愿为它去受罪------**做我想做的事(这件事对我来说,就是写小说),并且把它做好,这就是我的目标。**我想,和我志趣相投的人总不会是一个都没有。

  根据我的经验,人在年轻时,最头疼的一件事就是决定自己这一生要做什么。在这方面,我倒没有什么具体的建议:干什么都可以,但最好不要写小说,这是和我抢饭碗。当然,假如你执意要写,我也没理由反对。总而言之,干什么都是好的;但要干出个样子来,这才是人的价值和尊严所在。人在工作时,不单要用到手、腿和腰,还要用脑子和自己的心胸。我总觉得国人对这后一方面不够重视,这样就会把工作看成是受罪。失掉了快乐最主要的源泉,对生活的态度也会因之变得灰暗......

  人活在世上,不但有身体,还有头脑和心胸------对此请勿从解剖学上理解。人脑是怎样的一种东西,科学还不能说清楚。心胸是怎么回事就更难说清。对我自己来说,心胸是我在生活中想要达到的最低目标。某件事有悖于我的心胸,我就认为它不值得一做;某个人有悖于我的心胸,我就觉得他不值得一交;某种生活有悖于我的心胸,我就会以为它不值得一过。罗素先生曾言,对人来说,不加检点的生活,确实不值得一过。我同意他的意见:不加检点的生活,属于不能接受的生活之一种。**人必须过他可以接受的生活,这恰恰是他改变一切的动力。**人有了心胸,就可以用它来改变自己的生活。

  **中国人喜欢接受这样的想法:只要能活着就是好的,活成什么样子无所谓。**从一些电影的名字就可以看出来:《活着》、《找乐》......**我对这种想法是断然地不赞成,因为抱有这种想法的人就可能活成任何一种糟糕的样子,从而使生活本身失去意义。**高尚、清洁、充满乐趣的生活是好的,人们很容易得到共识。卑下、肮脏、贫乏的生活是不好的,这也能得到共识。但只有这两条远远不够。我以写作为生,我知道某种文章好,也知道某种文章坏。仅知道这两条尚不足以开始写作。还有更加重要的一条,那就是:某种样子的文章对我来说不可取,绝不能让它从我笔下写出来,冠以我的名字登在报刊上。以小喻大,这也是我对生活的态度。

Wednesday, 18 December 2024

如何删除某个github仓库的分支


  1. GitHub 上,导航到存储库的主页面。
  2. 在左侧的文件树视图中,选择 分支下拉菜单,然后单击“查看所有分支”。比如:https://github.com/briteming/vgi/branches ,在分支xxx的那一行的最右端,点击垃圾桶图标,即可删除分支xxx。

搭建基于github issue的静态博客程序vgi

 首先,fork此项目https://github.com/varHarrie/varharrie.github.io ,我fork 后的项目地址是

https://github.com/briteming/vgi ,然后访问https://github.com/briteming/vgi/issues/new,创建issue. 除了要输入标题及内容外,还要添加label(我添加的 label的值是blog)和milestone(我添加的milestone的值是posts),然后才提交issue.

然后,访问vercel.com/new (当然,你需先登录你的vercel账号),然后导入vgi项目:

在跳到的页面的environment variables处:

按如下的内容:

VITE_APP_TITLE=Blog of brite
VITE_TITLE=it's Blog of brite
VITE_EMAIL=briteming@gmail.com
VITE_GITHUB_URL=https://github.com/briteming/vgi
VITE_GITHUB_ACCESS_TOKEN_PART1=你的GITHUB_ACCESS_TOKEN的值被截断的第一部分
VITE_GITHUB_ACCESS_TOKEN_PART2=你的GITHUB_ACCESS_TOKEN的值被截断的第二部分
VITE_GITHUB_OWNER=briteming
VITE_GITHUB_REPO=vgi
VITE_GITHUB_MILESTONE_POSTS=1
VITE_GITHUB_MILESTONE_SNIPPETS=2
VITE_ARTICLE_PAGE_SIZE=5
VITE_COMMENT_PAGE_SIZE=30

在key 处和value处分别填好。然后点击deploy按钮,等待部署完成。部署完成后,我得到的网址是https://vgi-jg9v.vercel.app 

还有一种办法:

克隆项目到本地机器,

git clone https://github.com/briteming/vgi

cd vgi

yarn

nano .env

cat .env

 显示:

VITE_APP_TITLE=Blog of brite
VITE_TITLE=it's Blog of brite
VITE_EMAIL=briteming@gmail.com
VITE_GITHUB_URL=https://github.com/briteming/vgi
VITE_GITHUB_ACCESS_TOKEN_PART1=你的GITHUB_ACCESS_TOKEN的值被截断的第一部分
VITE_GITHUB_ACCESS_TOKEN_PART2=你的GITHUB_ACCESS_TOKEN的值被截断的第二部分
VITE_GITHUB_OWNER=briteming
VITE_GITHUB_REPO=vgi
VITE_GITHUB_MILESTONE_POSTS=1
VITE_GITHUB_MILESTONE_SNIPPETS=2
VITE_ARTICLE_PAGE_SIZE=5
VITE_COMMENT_PAGE_SIZE=30

 然后运行:

yarn build 

(此命令会在当前目录下,生成dist目录。dist目录就是静态网站的根目录)

cd dist

~/vgi/dist (v2) $ ls
assets/  index.html

~/vgi/dist (v2) $

你可以把 ~/vgi/dist目录的内容push到github pages或上传到netlify.com空间,得到的网址是

https://beautiful-genie-bec070.netlify.app/#/posts

演示网址:

https://vgi-jg9v.vercel.app/#/posts

https://beautiful-genie-bec070.netlify.app/#/posts

项目地址:

https://github.com/varHarrie/varharrie.github.io

https://github.com/briteming/vgi 

 

 

 


 

 




强者和弱者的区别

 

首先强者和弱者的第1个区别在于:靠自己,还是靠别人。

这完全是两个思维循环模式,内核是对于责任的承担能力

对于强者来说,他们更能够看到自身的主动性。所以遇到一件事了,他们首先会向内探索自我需求,知道我要的是什么,去发现外部的客观问题。发现问题之后,他们会去思考解决方案,然后看看自己手上有什么资源,接着去行动,就是靠自己的能力去尝试解决问题,拿到自己想要的结果

但是初期往往会因为能力不足,资源不够,所以出现问题。那么这个时候他们会开始思考哪里有问题,哪里没有做到位,哪里需要改进,然后通过改进调整,最终一步一步的靠近或拿到自己想的结果,这也是心理学中所说的【成长性思维】。

但是弱者的思维模式是完全不一样的,大多数弱者他们都不知道自己到底想要的是什么,往往会根据外部的营销盲目决策,就是很容易受到外部价值观的影响去做选择,然后遇到事了会产生巨量的情绪,因为他们自身没有能力,也不相信自己可以做到,他们没有安全感,那么这样的内核就造就了无知,因为无知,所以他们恐惧,因为恐惧又产生焦虑。

那这个时候怎么办呢?

他们会把这部分需求向外面投射,就是想要靠别人来拯救自己。

那么你妄图靠别人的时候,其实就让渡了自己的权力,这个时候你就失去了主动性呀,因为你会没有任何的选择权,完全依据依靠别人。然后别人给了你一套解决方案,如果解决了你的事情,你下次会继续考虑这套方案,如果没有解决问题,你还会开始埋怨对方水平不行

所以你会发现很多弱者一边靠着强者,一边还要攻击强者,而且自己还无法从这种状态里面抽离,因为没有任何的选择权。

所以这是强者和弱者的第1个区别,就是他们的思维模式是完全不一样的。很多弱者会觉得那些强者是命好,他们就没有遇到那么多问题阻碍,其实不是的,而是强者在面对问题的时候,他们更能够跳出来看清楚,他们也能够接受自己当下可能能力不足,但是他们并不会因此就转而去靠别人,他们会去思考自己如何一步步提升能力,去思考问题的解决方案,去成长自己。最终随着自己的提升,问题变得越来越小。

但弱者不一样,他们遇到很多问题,第一时间想的就是逃避,或者渴望有一个人能替自己去解决。那么在这个过程中,自身的能力没有得到任何的提升,甚至也失去了成长的机会。所以当下次类似的问题出现时,自己仍然无法应对,还需要依靠别人,但是依靠别人又充满了不确定性。所以痛苦烦恼一大堆。

强者和弱者的第二个区别是心理能量的不同。

心理能量更多的取决于对这个世界规律和真相的洞察

你会发现强者的心理能量往往都是非常高的,就是他们遇到很多事的时候,不会第一时间惊慌失措,惶恐不安。不会一味的在那里愤怒,宣泄情绪。

但是弱者不一样,弱者往往不能客观的看待事情本身, 对于弱者来说,他们最看重的是他们的自尊心,所以你会发现很多弱者的言论变来变去,但是所有行为的目的都是在证明自己没有错,错不在我。

那为什么会有这种区别呢?就是因为强者洞悉了更多这个世界的规律,就是他们很清楚一切都在变,就像佛家所说的诸行无常,很多事是超出人力可控制的范围的,有着很大的随机性的。

所以他们可以坦然的面对世界上一些风险和变数。他们可以接受事与愿违,他们不会过分的执着结果。他们也非常勇于去承认自己的认知不足,会去探索更好的行为模式,不断的成长自己。

但弱者不一样,他们对这个世界充满了无知。所以但凡事情超出了一点自己的掌控他们就会感觉不安全,就会发火,会想要控制外部,试图改变别人,去指责、道德绑架甩脸子,会想要用尽一切方法达到自己预期的东西。如果做了这一切还是得不到自己想要的,还是出错了失败了,这就会伤及他们的自尊心,所以他们会编出一万个理由去证明自己没有错,好维护自己的自尊心

那么因为这种对规律的理解不够透彻,所以他们的人生会更加的磕磕绊绊,有更多的痛苦烦恼。

所以强者和弱者的第2个区别是心理能量的区别,更深入点说是对这个世界规律和真相的认知上的区别。

那么强者和弱者第3个区别是决策上的区别。

就是强者的决策往往是基于对于信息的收集和自身的了解,去客观评估风险,然后在自己能接受的范围内,去找一个最适合自己的方向

但弱者不一样,弱者会非常容易自然而然的选择那些最容易的、风险最低的选择。那么很显然,收益自然也最低。

而且更严重的是很多弱者他们之所以做出某个选择,是因为大家都这么选,就是他们第一时间是随大流,随大流不是说一定不对,但是很多时候你要想清楚为什么要随大流,就是你要有自己的一个方向,比起选择本身,选择的根据反而会更重要,但很多弱者他们根本就不知道自己想要的是什么,为什么这么选,这是非常可怕的。

当一个人选择了某个东西但是却不知道为何,只是随大流的时候,他就无法坚定的走下去,他就会很容易动摇。所以你会发现很多弱者三天打鱼两天晒网口头上信誓旦旦,但没多久就打退堂鼓。

最后一个强者和弱者的区别是什么,就体现在合作上

就是对于强者来说,他们会更多的追求那种公平合作,就是基于各自擅长的领域,进行公平的互利互惠,彼此提供价值。在这个过程中呢,大家更关注事情,那么事情做好了自然而然的会产生好的结果,好的结果就会产生感情

就是强者对这个东西他是看得很透彻的,他不会对感情有很多的寄托,他很清楚一段好的关系背后一定是有价值或者说利益支撑的。所以会先提供价值,先把事儿做好,合理的看待感情

但弱者不一样,弱者很多时候是相互内耗的。他们会擅长于在一块抱团取暖,但是如果谁比谁强了,他们又接受不了。就像我们说的,嫌你贫怕你富。

另一方面,大部分弱者他们更多时候眼里只有自己想要什么,没思考过别人要什么,别人的需求是什么,他们相互在索取着,但并不是合作着,这两者是有本质区别的。就是都想从别人那里获得更多的利益,却又不想着自己能提供什么价值,那最后这段关系肯定是不欢而散。

audio_video_streaming

 音视频流媒体权威资料整理,500+份文章,论文,视频,实践项目,协议,业界大神名单。

音视频流媒体权威资料整理,精选文章,学术论文,大佬视频,实践项目,开源框架,协议,业界大神一览.


—— 近年来热门、吃香、值得学习的技术方向


🏹【熟读兵法,搞定面试】50道音视频经典面试题

👁️【不想看文字,视频更直接】国内国外大佬教学视频

🗜【项目实战应用,日后100%要用到】N个经典开源项目


 

面试题


📰 文章

No. article
1 WebRTC 发送方码率预估实现解析
2 码率控制基本概念
3 Speex回声消除代码分析
4 房间声学原理与Schroeder混响算法实现
5 H264系列--压缩编码技术
6 RTSP 媒体协议流的录制方案及其覆盖策略详解
7 建立连接之ICE框架
8 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
9 音视频同步原理及实现
10 直播概念和流程框架
11 CDN在直播中的运用
12 常见音视频编码格式
13 H.264官方软件JM源代码分析-编码器lencod
14 H.264官方软件JM源代码分析-解码器ldecod
15 Android 音视频技术
16 Web前端WebRTC攻略-媒体协商与SDP简析
17 基于FFmpeg的AVfilter的例子-纯净版
18 WebRTC 传输安全机制第二话:深入显出 SRTP 协议
19 WebRTC能给我带来什么?
20 视音频数据处理:RGB、YUV像素数据处理
21 视音频数据处理:PCM音频采样数据处理
22 视音频数据处理:H.264视频码流解析
23 视音频数据处理:AAC音频码流解析
24 视音频数据处理:FLV封装格式解析
25 视音频数据处理:UDP-RTP协议解析
26 如何生成mp4文件
27 ffmpeg滤镜的基本使用
28 webRTC是如何实现音视频的录制
29 音视频同步算法
30 房间声学原理与Schroeder混响算法实现
31 一个频域语音降噪算法实现及改进方法
32 HEVC官方软件HM源代码分析-编码器TAppEncoder
33 HEVC官方软件HM源代码分析-解码器TAppDecoder
34 音视频编解码常用知识点
35 微信小程序集成实时音视频通话功能
36 视音频编解码技术零基础学习方法
37 RTSP协议学习
38 HEVC码流分析
39 H.264简单码流分析
40 MPEG2简单码流分析
41 视频码流分析工具
42 H.264分析器
43 FFmpeg架构之IO模块分析
44 (Video and Audio Data Processing)UDP-RTP协议解析
45 RTSP协议实例分析
46 RTSP协议之TCP或UDP问题
47 ffplay工具命令使用技巧
48 VLC RTSP网络串流播放失败
49 RTMP协议详解
50 STUN 原理理解

🌐 开源框架

实时音视频开源项目

实时音视频应用共包括几个环节:采集、编码、前后处理、传输、解码、缓冲、渲染等很多环节。每一个细分环节,还有更细分的技术模块。
比如,前后处理环节有美颜、滤镜、回声消除、噪声抑制等,采集有麦克风阵列等,编解码有VP8、VP9、H.264、H.265等。

采集->前处理编码->传输->解码后处理->渲染

实时音视频开源项目思维导图 音视频开源项目说明

编解码开源项目
project website introduce
WebRTC webrtc.org WebRTC实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。WebRTC提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android。
x264 www.linuxfromscratch.org H.264是ITU(International Telecommunication Union,国际通信联盟)和MPEG(Motion Picture Experts Group,运动图像专家组)联合制定的视频编码标准。而x264是一个开源的H.264/MPEG-4 AVC视频编码函数库,是最好的有损视频编码器之一。
FFmpeg ffmpeg.org FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。FFmpeg提供了编码、解码、转换、封装等功能,以及剪裁、缩放、色域等后期处理。
ijkplayer bilibili/ijkplayer ijkplayer 是一个基于 ffplay 的轻量级 Android/iOS 视频播放器。实现了跨平台功能,API易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电;提供Android平台下应用弹幕集成的解决方案。
JSMpeg jsmpeg.com JSMpeg is a Video Player written in JavaScript. It consists of an MPEG-TS Demuxer, WebAssembly MPEG1 Video & MP2 Audio Decoders, WebGL & Canvas2D Renderers and WebAudio Sound Output. JSMpeg can load static files via Ajax and allows low latency streaming (~50ms) via WebSocktes.
Opus opus.nlpl.eu Opus是一个有损声音编码的格式,由Xiph.Org基金会开发,之后由IETF(互联网工程任务组)进行标准化,目标是希望用单一格式包含声音和语音,取代Speex和Vorbis,且适用于网络上低延迟的即时声音传输,标准格式定义于RFC 6716文件。Opus格式是一个开放格式,使用上没有任何专利或限制。
live555 www.live555.com live555是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了标准流媒体传输,是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+ 、DV、JPEG视频和多种音频编码。
服务端开源项目
project website introduce
jitsi jitsi/jitsi Jitsi is an audio/video and chat communicator that supports protocols such as SIP, XMPP/Jabber, IRC and many other useful features.
JsSIP jssip.net JsSIP是一个简单易用的JavaScript库,它利用SIP和WebRTC的最新发展,在任何网站上提供全功能的SIP端点。通过JsSIP ,只要几行代码,任何网站都可以通过音频,视频等获得实时通信功能。
SRS www.ossrs.net SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。SRS提供了丰富的接入方案将RTMP流接入SRS,包括推送RTMP到SRS、推送RTSP/UDP/FLV到SRS、拉取流到SRS。SRS还支持将接入的RTMP流进行各种变换,譬如将RTMP流转码、流截图、转发给其他服务器、转封装成HTTP-FLV流、转封装成HLS、转封装成HDS、录制成FLV。SRS包含支大规模集群如CDN业务的关键特性,譬如RTMP多级集群、源站集群、VHOST虚拟服务器、无中断服务Reload、HTTP-FLV集群、Kafka对接。此外,SRS还提供丰富的应用接口,包括HTTP回调、安全策略Security、HTTP API接口、RTMP测速。
JRTPLIB j0r1/JRTPLIB jrtplib是一个基于C++、面向对象的RTP封装库, jrtplib支持定义于RFC3550中的RTP协议,它使得发送和接收RTP报文变得异常简单,用户不用担心SSRC冲突,也不用考虑如何传输RTCP数据,因为RTCP功能完全在内部实现。
OPAL opalvoip Open Phone Abstraction Library (OPAL) is a C++ multi-platform, multi-protocol library for Fax, Video & Voice over IP and other networks. Also included is the Portable Tool Library (PTLib) which is a C++ multi-platform abstraction library.
Kurento www.kurento.org Kurento 是一个WebRTC流媒体服务器以及一些客户端API,开发WWW及智能手机平台的高级视频应用就变得更加容易。可以利用Kurento开发的应用类型包括,视频会议,音视频广播,音视频录制、转码等。
Janus janus.conf.meetecho.com Janus 是由Meetecho设计和开发的开源、通用的基于SFU架构的WebRTC流媒体服务器,它支持在Linux的服务器或MacOS上的机器进行编译和安装。
质量传输开源项目
project website introduce
callstats.io callstats Callstats.io致力于监控和管理WebRTC应用中的音频和视频通话性能。提供Javascript客户端库,可以监测浏览器终端性能,从而帮助服务供应商准确定位那些媒体质量较低的终端用户,并进行性能问题的诊断。该信息主要是用于产品经理和工程师来提高客户体验质量,主动解决潜在的瓶颈障碍。
Meetecho meetecho/janus-gateway Meetecho Janus是Meetecho公司的一款WebRTC(网页即时通信)服务器。
Agora agora.io 声网Agora提供了一套简单而强大的SDK,开发者可以利用其中的资源在任何手机或电脑应用中加入高清语音和视频通讯功能。
视频前后处理开源项目
音频
project website introduce
soundtouch soundtouch SoundTouch是一个开源的音频处理库,主要实现包含变速、变调、变速同时变调等三个 功能模块,能够对媒体流实时操作,也能对音频文件操作。采用32位浮点或者16位定点,支持单声道或者双声道,采样率范围为8k~48k。
视频
project website introduce
SeetaFace6 SeetaFace6Open SeetaFace6是中科视拓最新开源的商业正式版本。包含人脸识别的基本部分,如人脸检测、关键点定位、人脸识别。同时增加了活体检测、质量评估、年龄性别估计。并且响应时事,开放了口罩检测以及戴口罩的人脸识别模型。
GPUImage2 GPUImage2 GPUImage是个功能十分强大、又十分易用的图像处理库。提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜。
open nsfw open_nsfw open nsfw是雅虎开源项目caffeonspark,使用深度学习训练得到caffe模型。nsfw翻译为不可在工作中看的图片。主要是针对黄图的,恐怖,血腥图片不能识别。
PaddleGAN PaddleGAN PaddleGAN是百度飞桨团队开源的对抗网络工具箱,提供了视频超分、插帧、上色等高质量深度学习能力。

其他音视频开源项目

project website introduce
Speex xiph.org Speex是一套主要针对语音的开源免费,无专利保护的音频压缩格式。
FLAC xiph.org FLAC中文可解释为无损音频压缩编码。FLAC是一套著名的自由音频压缩编码,其特点是无损压缩。不同于其他有损压缩编码如MP3及AAC,它不会破坏任何原有的音频信息,所以可以还原音乐光盘音质。
Xvid xvidmovies Xvid是一个开放源代码的MPEG-4视频编解码器,它是基于OpenDivX而编写的。
Lagarith lags.leetcode.net Lagarith,是一种由Ben Greenwood所撰写的影片编解码器(video codec)。
Thor wwww.thor.com Thor是思科开源的视频编码解码器,Thor拥有适当复杂度的高压缩率视频编码解码器,使用众所周知的 motion-compensated 预测的混合视频编码方法和变换编码。

🧿 视频

国外大神

No. title
1 如何使用FFMPEG将MP4视频文件转换为GIF
2 FFMPEG Introduction & Examples
3 Live Streaming with Nginx and FFmpeg
4 Ep2 Ffmpeg Nginx & Nginx-Rtmp-Module Streaming to Server
5 Streaming an IP Camera to a Web Browser using FFmpeg
6 Easy Screencasting and Webcamming with ffmpeg in Linux
7 Streaming an IP Camera to a Web Browser using FFmpeg
8 FFMPEG Advanced Techniques Pt2 - Filtergraphs & Timeline
9 Convert HEVCh265 mkv video to AVCh264 mp4 with ffmpeg
10 How to add soft subtitles( srt subrip) to mp4 video using ffmpeg
11 FFmpeg Processing multiple video files by using.bat file
12 Opensource Multimedia Framework -- FFmpeg
13 rtsp streaming node js ip camera jsmpeg
14 H.265 RTSP Streaming to VLC + NewTek NDI Integration
15 IP camera stream using RTSP and openCV python
16 NAT Traversal & RTSP
17 Simple client et serveur de Streaming RTSP MJPEG(JAVA SE)
18 Build Your First WebRTC Video Chat App
19 P2P Video Chat with JavaScript/WebRTC
20 Building a WebRTC app - LIVE
21 Zoom vs WebRTC
22 Architectures for a kickass WebRTC application
23 (REACT NATIVE) - integrate webRTC
24 How to build Serverless Video Chat App using Firebase and WebRTC in React
25 Implementation Lessons using WebRTC in Asterisk

国内大佬

No. title 地址
26 windows ffmpeg命令行环境搭建 点击学习
27 FFMPEG如何查询命令帮助文档 点击学习
28 ffmpeg音视频处理流程 点击学习
29 ffmpeg命令分类查询 点击学习
30 ffplay播放控制 点击学习
31 ffplay命令选项(上) 点击学习
32 ffplay命令选项(下) 点击学习
33 ffplay命令播放媒体 点击学习
34 ffplay简单过滤器 点击学习
35 ffmpeg命令参数说明 点击学习
36 ffmpeg命令提取音视频数据 点击学习
37 ffmpeg命令提取像素格式和PCM数据 点击学习
38 ffmpeg命令转封装 点击学习
39 fmpeg命令裁剪和合并视频 点击学习
40 fmpeg命令图片与视频互转 点击学习
41 ffmpeg命令视频录制 点击学习
42 ffmpeg命令直播(上) 点击学习
43 ffmpeg命令直播(下) 点击学习
44 ffmpeg过滤器-裁剪 点击学习
45 ffmpeg过滤器-文字水印 点击学习
46 ffmpeg过滤器-图片水印 点击学习
47 ffmpeg过滤器-画中画 点击学习
48 ffmpeg过滤器-多宫格 点击学习
49 SRS流媒体服务器实战(上) 点击学习
50 SRS流媒体服务器实战(下) 点击学习
51 音视频开发-ffplay.iikplayer、vlc的播放器设计实现 点击学习
52 音视频成长之路-进阶三部曲 点击学习
53 为什么直播领域也要搞WebRTC-srs4.0 点击学习
54 腾讯课堂直播如何做到低延迟 点击学习
55 rtmp2webrtc提出问题-灵魂拷问 点击学习

🍀 paper

ffmpeg

No. Title Company
1 《From Laptop to Lambda:Outsourcing Everyday Jobs to Thousands of Transient Functional Containers》 斯坦福大学
2 《SUSTAINABILITY THROUGH COMMUNITY ffmprovisr and the Case for Collaborative Knowledge Transfer》 华盛顿州立大学
3 《Companion Paper for “MiniView Layout for Bandwidth-Efficient 360-Degree Video”》 俄亥俄州立大学
4 《Research on Audio/Video Codec Based on Android》 北京大学
5 《Fuzzing Error Handling Code using Context-Sensitive Software Fault Injection》 清华大学
6 《Evaluating Fuzz Testing》 德克萨斯州大学
7 《lntel QuickSync Video and FFmpeg》 Intel
aac
No. Title Company
8 《TalkingBoogie: Collaborative Mobile AAC System for Non-verbal Children with Developmental Disabilities and Their Caregivers》 首尔国立大学
9 《The Performance Of The AAC Pumpcell Circuits At The Gold Fields Limited Driefontein And Kloof Operations》
ffplay
No. Title Company
10 《Sustainability through Community ffmprovisr and the Case for Collaborative Knowledge Transfer》 华盛顿大学
11 《Desarrollo de una Aplicación Cliente/Servidor para un Wall View en base a la Plataforma – Cruzada Opensource – FFMPEG (Colección de Software Libre que puede Grabar, Convertir y hacer Streaming de Audio y Vídeo)》
12 《Salsify: Low-Latency Network Video Through Tighter Integration Between a Video Codec and a Transport Protocol》 斯坦福大学
H264
No. Title Company
13 《Performance Comparison of H.265/MPEG-HEVC, VP9, and H.264/MPEG-AVC Encoders》
14 《3D range geometry video compression with the H.264 codec》 爱荷华州立大学
15 《PERFORMANCE EVALUATION OF H.265/MPEG-HEVC, VP9 AND H.264/MPEG AVC VIDEO CODING》
16 《Hardware Architecture Design of an H.264/AVC Video Codec》 国立台湾大学
17 《Evaluacióndelrendimiento paralelo en el nivelmacro bloque del decodificadorH.264enuna arquitecturamultiprocesador cc­NUMA》
18 《Machine Learning Approach to Detect Tampering in H.264 Video》
19 《Overview of the H.264/AVC Video Coding Standard》
20 《FAST SHOT DETECTION FOR HIGH QUALITY LOW DELAY H.264 VIDEO CODING》
21 《H.264 vs H.265》
22 《H.264 Video Frame Size estimation》 瑞典隆德大学
23 《The H.264/MPEG4 Advanced Video Coding Standard and its Applications》
24 《Real-time H264/AVC encoder based on enhanced frame level parallelism for smart multicore DSP camera》
25 《Visibility of individual packet loss on H.264 encoded video stream – A user study on the impact of packet loss on perceived video quality》
26 《Effective Compression of Range Data Streams for Remote Robot Operations using H.264》
27 《Parallel Scalability of H.264》 巴塞罗那超级计算中心
28 《The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the Fidelity Range Extensions》
29 《Customizing Wide-SIMD Architectures for H.264》
30 《The H.264/MPEG4 Advanced Video Coding Standard and its Applications》

流媒体

RTSP
No. Title Company
31 《DREAM – A Data Streaming Application Using RTP/RTSP in a Local Area Network》
32 《The Architecture of an Integrated RTSP, RTP and SDP Library》
33 《Secure IPsec based offload architectures for mobile data : architecture description and performance evaluation》
34 《WebRTC for peer-to-peer streaming from an IP camera》
35 《A High Q&S RTSP Server’s Architecture and Implementation Based On Android》
36 《基于 gst-rtsp-server 的网络摄像机设计与实现》 北京邮电大学计算机学院
37 《A Caching and Streaming Framework for Multimedia》
38 《A Survey on open Source Protocols SIP, RTP, RTCP, RTSP, H.264 for Video Conferencing System》
39 《A Multimedia Semantic Model for RTSP-Based Multimedia Presentation Systems》
40 《AN ARCHITECTURE FOR STREAMING CONTROL IN DISTRIBUTED MULTIMEDIA SYSTEMS》
41 《Multimedia and streaming traffic analysis》
42 《RTP,RTCP, and RTSP — Internet Protocols for Real-Time Multimedia Communication》
43 《Secure Real-Time Streaming Protocol (RTSP) for Hierarchical Proxy Caching》 香港大学
44 《RTSP Live Streaming》
45 《Kria K26 SOM:The Ideal Platform for Vision AI at the Edge》
46 《Streaming Video over the Internet:Approaches and Directions》
rtmp
No. Title Company
47 《Live Delivery of Neurosurgical Operating Theatre Experience in Virtual Reality》
48 《Virtual Office Design For The Effectiveness Of Web_based Office Administration Works》
49 《Advancing User Quality of Experience in 360-degree Video Streaming》
50 《Extended User Control over Multichannel Content Delivered over the Web》
51 《A First Characterization of Anycast Traffic from Passive Traces》
52 《ELECTRICAL DISTRIBUTION NETWORKS STATE ESTIMATION》
53 《Cloud Ingest of Live Video – An open approach to RIST, SRT and retransmission protocols》
54 《E3: MANAGEMENT OF TRAFFIC DURING CONSTRUCTION》
55 《CAPTURING AND REPLAYING STREAMING MEDIA IN A WEB ARCHIVE – A BRITISH LIBRARY CASE STUDY》
56 《360° Innovations for Panoramic Video Streaming》
57 《Understanding Video Management Planes》
58 《Anatomy of a Personalized Livestreaming System》
59 《360-Degree Video Streaming: A Survey of the State of the Art》
HLS
No. Title Company
60 《A Survey and Evaluation of FPGA High-Level Synthesis Tools》
61 《Centrifuge: Evaluating full-system HLS-generated heterogeneous-accelerator SoCs using FPGA-Acceleration》
62 《ThunderGP: HLS-based Graph Processing Framework on FPGAs》
63 《HL5: A 32-bit RISC-V Processor Designed with High-Level Synthesis》

🧾 协议

HTTP

No. Title link
1 Hypertext Transfer Protocol -- HTTP/1.1 rfc2068.txt.pdf
2 An Extension to HTTP : Digest Access Authentication rfc2069.txt.pdf
3 Simple Hit-Metering and Usage-Limiting for HTTP rfc2227.txt.pdf
4 HTTP Extensions for Distributed Authoring -- WEBDAV rfc2518.txt.pdf
5 Internet X.509 Public Key Infrastructure Operational Protocols: FTP and HTTP rfc2585.txt.pdf
6 Upgrading to TLS Within HTTP/1.1 rfc2817.txt.pdf

RTP

No. Title link
7 RTP: A Transport Protocol for Real-Time Applications rfc1889.txt.pdf
8 RTP Profile for Audio and Video Conferences with Minimal Control rfc1890.txt.pdf
9 RTP Payload Format of Sun's CellB Video Encoding rfc2029.txt.pdf
10 RTP Payload Format for JPEG-compressed Video rfc2035.txt.pdf
11 RTP Payload Format for MPEG1/MPEG2 Video rfc2038.txt.pdf
12 RTP Payload for Redundant Audio Data rfc2198.txt.pdf
13 RTP Payload Format for MPEG1/MPEG2 Video rfc2250.txt.pdf
14 RTP Payload Format for the 1998 Version of ITU-T Rec. H.263 Video (H.263+) rfc2429.txt.pdf
15 RTP Payload Format for BT.656 Video Encoding rfc2431.txt.pdf
16 RTP Payload Format for JPEG-compressed Video rfc2435.txt.pdf
17 Compressing IP/UDP/RTP Headers for Low-Speed Serial Links rfc2508.txt.pdf
18 An RTP Payload Format for Generic Forward Error Correction rfc2733.txt.pdf
19 RTP Payload for Text Conversation rfc2793.txt.pdf
20 RTP Payload for DTMF Digits, Telephony Tones and Telephony Signals rfc2833.txt.pdf
21 RTP Payload Format for Real-Time Pointers rfc2862.txt.pdf
22 RTP Payload Format for MPEG-4 Audio/Visual Streams rfc3016.txt.pdf
23 RTP Payload Format for ITU-T Recommendation G.722.1 rfc3047.txt.pdf

RTSP

No. Title link
24 Real Time Streaming Protocol (RTSP) rfc2326.txt.pdf
25 Key Management Extensions for Session Description Protocol (SDP) and Real Time Streaming Protocol (RTSP) rfc4567.txt.pdf
26 A Network Address Translator (NAT) Traversal Mechanism for Media Controlled by the Real-Time Streaming Protocol (RTSP) rfc7825.txt.pdf
27 Real-Time Streaming Protocol Version 2.0 rfc7826.txt.pdf
28 SDP: Session Description Protocol rfc8866.pdf

TCP

No. Title link
29 Protocol standard for a NetBIOS service on a TCP/UDP transport: Concepts and methods rfc1001.pdf
30 Protocol standard for a NetBIOS service on a TCP/UDP transport: Detailed specifications rfc1002.pdf
31 Transmission Control Protocol rfc793.pdf

UDP

No. Title link
32 Protocol standard for a NetBIOS service on a TCP/UDP transport: Concepts and methods rfc1001.pdf
33 Protocol standard for a NetBIOS service on a TCP/UDP transport: Detailed specifications rfc1002.pdf
34 SNMPv2 Management Information Base for the User Datagram Protocol using SMIv2 rfc2013.pdf
35 TCP and UDP over IPv6 Jumbograms rfc2147.pdf
36 Compressing IP/UDP/RTP Headers for Low-Speed Serial Links rfc2508.pdf
37 STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs) rfc3489.pdf
38 Mobile IP Traversal of Network Address Translation (NAT) Devices rfc3519.pdf
39 The Lightweight User Datagram Protocol (UDP-Lite) rfc3828.pdf
40 UDP Encapsulation of IPsec ESP Packets rfc3948.pdf
41 RObust Header Compression (ROHC): Profiles for User Datagram Protocol (UDP) Lite rfc4019.pdf
42 Management Information Base for the User Datagram Protocol (UDP) rfc4113.pdf
43 User Datagram Protocol rfc768.pdf

Gopher

No. Title link
44 The gopher URI Scheme rfc4266.pdf

SDP

No. Title link
45 SDP: Session Description Protocol rfc2327.pdf
46 The PINT Service Protocol: Extensions to SIP and SDP for IP Access to Telephone Call Services rfc2848.pdf
47 Carrying Label Information in BGP-4 rfc3107.pdf
48 An Offer/Answer Model with Session Description Protocol (SDP) rfc3264.pdf
49 Support for IPv6 in Session Description Protocol (SDP) rfc3266.pdf
50 Grouping of Media Lines in the Session Description Protocol (SDP) rfc3388.pdf
51 Session Description Protocol (SDP) Simple Capability Declaration rfc3407.pdf
52 The Session Initiation Protocol (SIP) and Session Description Protocol (SDP) Static Dictionary for Signaling Compression (SigComp) rfc3485.pdf
53 Mapping of Media Streams to Resource Reservation Flows rfc3524.pdf
54 Session Description Protocol (SDP) Bandwidth Modifiers for RTP Control Protocol (RTCP) Bandwidth rfc3556.pdf
55 RTP Control Protocol Extended Reports (RTCP XR) rfc3611.pdf
56 A Transport Independent Bandwidth Modifier for the Session Description Protocol (SDP) rfc3890.pdf
57 The Alternative Network Address Types (ANAT) Semantics for the Session Description Protocol (SDP) Grouping Framework rfc4091.pdf
58 TCP-Based Media Transport in the Session Description Protocol (SDP) rfc4145.pdf
59 RTP Payload Format for BroadVoice Speech Codecs rfc4298.pdf
60 SDP: Session Description Protocol rfc4566.pdf
61 Key Management Extensions for Session Description Protocol (SDP) and Real Time Streaming Protocol (RTSP) rfc4567.txt.pdf

Connection

No. Title link
62 The PPP OSI Network Layer Control Protocol (OSINLCP) rfc1242.txt.pdf

RTCP

No. Title link
63 RTP: A Transport Protocol for Real-Time Applications rfc1889.txt.pdf
64 Session Description Protocol (SDP) Bandwidth Modifiers for RTP Control Protocol (RTCP) Bandwidth rfc3556.txt.pdf
65 Real Time Control Protocol (RTCP) attribute in Session Description Protocol (SDP) rfc3605.txt.pdf
66 RTP Control Protocol Extended Reports (RTCP XR) rfc3611.txt.pdf
67 Framing Real-time Transport Protocol (RTP) and RTP Control Protocol (RTCP) Packets over Connection-Oriented Transport rfc4571.txt.pdf
68 Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/AVPF) rfc4585.txt.pdf
69 RTP Retransmission Payload Format rfc4588.txt.pdf
70 Extended Secure RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/SAVPF) rfc5124.txt.pdf
71 Support for Reduced-Size Real-Time Transport Control Protocol (RTCP): Opportunities and Consequences rfc5506.txt.pdf
72 Post-Repair Loss RLE Report Block Type for RTP Control Protocol (RTCP) Extended Reports (XRs) rfc5725.txt.pdf
73 RTP Control Protocol (RTCP) Extensions for Single-Source Multicast Sessions with Unicast Feedback rfc5760.txt.pdf
74 Datagram Transport Layer Security (DTLS) Extension to Establish Keys for the Secure Real-time Transport Protocol (SRTP) rfc5764.txt.pdf
75 Session Initiation Protocol Event Package for Voice Quality Reporting rfc6035.txt.pdf
76 Rapid Synchronisation of RTP Flows rfc6051.txt.pdf
77 RTP Control Protocol (RTCP) Port for Source-Specific Multicast (SSM) Sessions rfc6128.txt.pdf
78 Guidelines for Choosing RTP Control Protocol (RTCP) Canonical Names (CNAMEs) rfc6222.txt.pdf
79 Application Mechanism for Keeping Alive the NAT Mappings Associated with RTP / RTP Control Protocol (RTCP) Flows rfc6263.txt.pdf
80 Multicast Acquisition Report Block Type for RTP Control Protocol (RTCP) Extended Reports (XRs) rfc6332.txt.pdf
81 RTP Control Protocol (RTCP) Extension for a Third-Party Loss Report rfc6642.txt.pdf

🥌 实践项目

实现了多人语音/多人视频项目, 房间号Id一致,用户Id不一致,即可实现多人语音/多人视频。

ijkplayer 是一个基于 ffplay 的轻量级 Android/iOS 视频播放器。实现了跨平台功能,API易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电;提供Android平台下应用弹幕集成的解决方案。

仿网易云音乐 安卓版,netease android,音乐播放器 在线 下载。

Timber是一个设计漂亮,功能完善,Material Design风格的音乐播放器。

WebRTC初学者的启动演示,包括一个基于Socket.IO的简单信号服务器,以及一些客户端演示Web/Android/IOS/Windows平台。
WebRTC入门项目部署步骤

使用WebRTC getstats APL返回对等连接状态的微小JavaScript库,如带宽使用、数据包丢失、本地)远程IP地址和端口、连接类型等。

跨平台的视频播放器,可在Linux和其他类Unix系统、Windows及Mac OS X系统使用。

IOS平台基于FFMPEG播放器

Android/IOS平台上的多媒体框架,带有硬件加速解码和渲染.

YUV转RGB.

将TS流解码为PES或ES.(下载这个源码需要FQ)

跨平台的视频播放器。现在也有安卓版本。也可以作为流媒体服务器。

免费的编解码软件,基于windows平台。原因就是directshow就是微软开发的,只能用于windows平台。

这是一个专注音视频播放器的库,目前还在不断优化中。

视频下载SDK功能。

这是一个专注音视频边下边播的库。

夜雨飘零大佬撰写的基于《Baidu's Deep Speech 2 paper》论文深度学习语音识别实战项目。

Android OpenGLES 3.0 开发系统性学习教程。

Android OpenGL Camera 2.0 实现 30 种滤镜和抖音特效。

音视频学习,相关文件格式/协议分析,框架学习等。yuv h264 aac flv mp4 rtmp;libyuv x264 openh264 faac faad2 fdk-aac librtmp ffmpeg sdl2 webrtc

from  https://github.com/0voice/audio_video_streaming