2024-06-19 12:01:30 +08:00
2024-03-17 19:50:01 +08:00
2024-03-17 19:50:01 +08:00
2024-01-04 13:10:52 +08:00
2024-03-17 19:50:01 +08:00
2024-03-17 19:50:01 +08:00
2024-05-27 11:52:03 +08:00
2024-05-27 11:16:27 +08:00
2024-01-04 13:10:52 +08:00
2024-03-17 19:50:01 +08:00
2024-03-17 19:50:01 +08:00
2024-03-17 19:50:01 +08:00
2024-05-27 11:52:03 +08:00
2024-05-27 12:03:48 +08:00
2024-03-17 19:50:01 +08:00
2024-03-17 19:50:01 +08:00

Go rkcodec

A cgo package for rkmpp media library.

Need rockchip/mpp enviorment.

A recommended tutorial is to follow the guidance on ffmpeg-rockchip#Compilation.

pkg-config --cflags rockchip_mpp

Usage

Install

go get -u github.com/Tryanks/go-rkcodec

Code

package main

import "C"
import "github.com/Tryanks/go-rkcodec"

func main() {
	decoder := rkcodec.NewMppCodec()
	decoder.Control(rkcodec.MppDecSetParserSplitMode, C.int(1))
	decoder.Init(rkcodec.MppCtxDec, rkcodec.MppCodingAVC)

	frame, err := rkcodec.MppFrameInit()
	if err != rkcodec.MppSuccess {
		panic(err)
	}
	defer frame.Deinit()

	packet, err := rkcodec.NewMppPacket()
	if err != rkcodec.MppSuccess {
		panic(err)
	}

	h264NALU := make([]byte, 1024) // H.264 NALU data

	packet.SetData(h264NALU)

	err = decoder.DecodePutPacket(*packet)
	if err != rkcodec.MppSuccess {
		panic(err)
	}

	err = decoder.DecodeGetFrame(frame)
	if err != rkcodec.MppSuccess {
		panic(err)
	}

	// Do something with the frame
}

Dev Reference

Rockchip_Developer_Guide_MPP

Description
Go 中 rkmpp(视频解码器/视频编码器)的绑定
Readme MIT 134 KiB
Languages
Go 95.6%
C 4.4%