前言

最近研究golang音视频处理的时候,试着将mp4推送流媒体服务。下面分享一下代码,大家有需要可以研究一下,按照自己的需求改改。

环境

需要安装:github.com/yapingcat/gomedia

代码

代码如下:

代码说明:

1、如果是其他格式的话,可以按照库里其他格式构建。

2、为什么在视频帧推送要睡30ms,可以按照帧率调整,因为读取的速度比较快,会推太快。

执行结果:

rtmp onstatus code:NetStream.Publish.Start ,level Started publishing stream. ,describe:%!s(MISSING)
ready for publish
start to read file
[{Duration:299925 TrackId:1 Cid:1 Height:1080 Width:1920 SampleRate:0 SampleSize:0 ChannelCount:0 Timescale:24000 StartDts:0 EndDts:299882} {Duration:299990 TrackId:2 Cid:102 Height:0 Width:0 SampleRate:48000 SampleSize:16 ChannelCount:2 Timescale:48000 StartDts:0 EndDts:299968}]
{MajorBrand:1836020585 MinorVersion:512 CompatibleBrands:[1836020585 846164841 828601953 825520237] Duration:299990 Timescale:1000 CreateTime:0 ModifyTime:0}

拉流画面:

这个代码主要只是简单的推流,没有太多对视频帧的处理。

如果有需要的话,可以自己集成一些其他的图像处理的库。

可以实现实时的视频处理并推送的功能。

总结