Giter Club home page Giter Club logo

streammedia's People

streammedia's Issues

封装ts、flv时间戳问题

封装TS时间戳

取系统时间(单位ms)*90

TS码流分析工具
EasyICE下载地址 https://www.easyice.cn/archives/85

封装flv时间戳

需要单独计算(单位ms)
视频时间戳:
帧数 * (1000/帧率)
音频时间戳:
帧数 * (采样时间间隔)
采样时间间隔= 1000 * 每次采样字节数/采样率
例如:单声道、8k采样,每次采样80字节,则采样时间间隔=1000 * 80/8000=10ms

FLV码流分析工具
flvAnalyser下载地址 https://github.com/zymill/flvAnalyser

音频G711编解码

G711的内容是将14bit或者13bit采样的PCM音频数据编码成8bit的数据流,播放的时候将此8bit的数据还原成14bit或者13bit进行播放.不同于MPEG这种对整体或者一段音频数据进行考虑再进行编解码的做法,G711是波形编解码算法,就是一个sample对应一个编码.所以压缩比是固定的,为

8/14 = 57% (uLaw)或者

8/13 = 62% (aLaw).

因为主要用于语音音频,采样率一般使用8KHz,这样带宽为8bit乘以8KHz = 64Kbps.这个64Kbps也常常被称作"一路数字电话"作为非正式的带宽计算单位.

G711主要的两种版本称之为uLaw(u律,14bit版本)与ALaw(a律,13bit版本).

有人会问,直接将14bit和13bit的PCM采样进行移位,丢掉低位得到8bit结果,岂不是更简单.但是音频数据的特点不适合这样的线性编码,直接移位的结果会丢弃音频的主要变化的部分(低位部分)从而导致直接移位的结果是音频质量大大降低.不管是ALaw还是uLaw,其核心**是,音频的大多数变化发生在整个动态范围的低部分.而且人耳对音频幅度的感觉成对数关系.从这个角度来讲,说G711是前PC时代的MP3算法也有点道理.

ffmpeg库加载顺序

    ${PROJECT_SOURCE_DIR}/../sdk/ffmpeg/lib/libavformat.a
    ${PROJECT_SOURCE_DIR}/../sdk/ffmpeg/lib/libavcodec.a
    ${PROJECT_SOURCE_DIR}/../sdk/ffmpeg/lib/libavdevice.a
    ${PROJECT_SOURCE_DIR}/../sdk/ffmpeg/lib/libavfilter.a
    ${PROJECT_SOURCE_DIR}/../sdk/ffmpeg/lib/libpostproc.a
    ${PROJECT_SOURCE_DIR}/../sdk/ffmpeg/lib/libswresample.a
    ${PROJECT_SOURCE_DIR}/../sdk/ffmpeg/lib/libswscale.a
    ${PROJECT_SOURCE_DIR}/../sdk/ffmpeg/lib/libavutil.a
    ${PROJECT_SOURCE_DIR}/../sdk/x264/lib/libx264.a

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.