Giter VIP home page Giter VIP logo

fuzzy-video-drill's Introduction

Hi there 👋

HWilliamgo's GitHub stats

Top Langs

fuzzy-video-drill's People

Contributors

hwilliamgo avatar

Watchers

 avatar  avatar

fuzzy-video-drill's Issues

【bug】【崩溃】rtmp连接异常导致崩溃

栈溢出导致的崩溃:

【现象】在遇到远端网络或者近端网络问题导致发送失败,本队rtmp内部自动重试重发,发生崩溃。
【原因】初步估计为网络重试的无限递归调用导致的栈溢出,引起程序崩溃。
【排查】

  1. RTMP_SendPacket
  2. WriteN
  3. RTMP_Close
  4. SendFCUnpublish
  5. RTMP_SendPacket

如何解决这个不断重发导致的崩溃问题?

  1. rtmp dump本身有设置或者钩子函数;
  2. 需要我们自己改rtmp dump的代码;
    【其他问题】
    在测试过程中发现,斗鱼的rtmp服务端不会对码流数据做超时校验,不会主动断开连接,而保利威rtmp服务端会对码流数据做有效性超时校验,一段时间后码流异常则拒绝连接,不再接受rtmp包。初步猜想是通过码流中是否有正常的sps和pps来做验证的。

【bug】竖屏开播,RtmpPushActivity中推出去的流是横屏的

Describe the bug
竖屏开播,RtmpPushActivity中推出去的流是横屏的

To Reproduce
Steps to reproduce the behavior:

  1. 去RtmpPushActivity界面
  2. 开始推流
  3. 看播放端的流画面
  4. 可以看到流画面是横过来的。

Expected behavior
竖屏推流,流画面应该是竖着的。

Screenshots
暂无

Desktop (please complete the following information):

  • OS: Android

Smartphone (please complete the following information):
与设备无关

Additional context

【重构】重构api_hw_jni.cpp中的Jni代码逻辑

重构目标
对api_hw_jni.cpp中的多个jni反射函数做重构,将上层不同java类的映射cpp函数和相关全局变量做拆分,拆分到不同的cpp文件中,不要全部逻辑堆放到这一个文件中。

重构原因
多个不相关的函数和全局变量混在一起,到后期新增逻辑或者新增某个jni模块的话,这个文件内容越来越多,越来越不好管理。

重构效果
每个上层java类对应一个c层的实现文件,方便管理和查找。

重构成本
2 h

【重构】不安全的全局JNIEnv变量

重构目标
请查看LiveRtmp子模块中的不安全的全局JNIEnv变量,对这个变量的访问会引发崩溃,暂时已经注释掉了相关逻辑,后续待修复。

重构原因
趁这次机会也引入和学习JNIEnv多线程访问机制。

重构效果
支持JNIEnv的多线程访问。

重构成本
预估需要4h。

【功能】需要增加音频推流功能。

背景
当前RTMP推流只有视频流,没有音频流,导致观看端听不到声音,需要也推声音出去。

解决方法

  1. 需要开发麦克风采集功能。
  2. 需要开发音频编码功能。
  3. 需要编写音频rtmp推流功能,与现有的视频rtmp推流要集成到一起去。

额外考虑
考虑也能够支持推纯音频流。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.