jdeng / Goheif
go gettable decoder/converter for HEIF/HEIC based on libde265
Stars: ✭ 72
Labels
Projects that are alternatives of or similar to Goheif
RDPlot
Tool for plotting rd curves from output of video coding test model software
Stars: ✭ 22 (-69.44%)
Mutual labels: hevc
Voukoder
Provides an easy way to include the FFmpeg encoders in other windows applications.
Stars: ✭ 436 (+505.56%)
Mutual labels: hevc
smart rtmpd
RTMP server, smart, compact, high performance(c, c++), high concurrency, easy to maintain, easy to deploy, (supports multiple operating systems Windows and Linux, ARM, FreeBSD)
Stars: ✭ 159 (+120.83%)
Mutual labels: hevc
Heif Utility
HEIF Utility - View/Convert Apple HEIF images on Windows.
Stars: ✭ 277 (+284.72%)
Mutual labels: hevc
demuxer
A tool for demux ts/mp4/flv by typescript. Support HEVC/AVC/AAC codec
Stars: ✭ 108 (+50%)
Mutual labels: hevc
Awesome Video
A curated list of awesome streaming video tools, frameworks, libraries, and learning resources.
Stars: ✭ 397 (+451.39%)
Mutual labels: hevc
rrdncnn
[TIP'2021 - MMM'2020] Down-Sampling Based Video Coding with Degradation-aware Restoration-Reconstruction Deep Neural Network
Stars: ✭ 27 (-62.5%)
Mutual labels: hevc
Gitlhevcanalyzer
Gitl HEVC/H.265 Analyzer based on Qt. Custom filters supported.
Stars: ✭ 361 (+401.39%)
Mutual labels: hevc
VIDEOconvertor
A stable and Fast telegram video convertor bot which can encode into different libs and resolution, compress videos, convert video into audio and other video formats, rename with thumbnail support, generate screenshot and trim videos.
Stars: ✭ 180 (+150%)
Mutual labels: hevc
Node Video Lib
Node.js Video Library / MP4 & FLV parser / MP4 builder / HLS muxer
Stars: ✭ 264 (+266.67%)
Mutual labels: hevc
Testing Video
Generator of test video files for testing your media playback devices and calibrate TV sets
Stars: ✭ 70 (-2.78%)
Mutual labels: hevc
Yuview
The Free and Open Source Cross Platform YUV Viewer with an advanced analytics toolset
Stars: ✭ 665 (+823.61%)
Mutual labels: hevc
Svt Hevc
SVT HEVC encoder. Scalable Video Technology (SVT) is a software-based video coding technology that is highly optimized for Intel® Xeon® processors. Using the open source SVT-HEVC encoder, it is possible to spread video encoding processing across multiple Intel® Xeon® processors to achieve a real advantage of processing efficiency.
Stars: ✭ 363 (+404.17%)
Mutual labels: hevc
GoHeif - A go gettable decoder/converter for HEIC based on libde265
Install
-
heic2jpg
to convert HEIC files to JPG preserving exif
go get github.com/jdeng/goheif/...
-
Tested
- Mac OS X (High Sierra)
- Linux (Ubuntu 16.04 / GCC 5.4)
- Windows 7 64bit with TDM-GCC 32 (GCC 5.1) and golang 1.12 windows/386
-
Code Sample
func main() {
flag.Parse()
...
fin, fout := flag.Arg(0), flag.Arg(1)
fi, err := os.Open(fin)
if err != nil {
log.Fatal(err)
}
defer fi.Close()
exif, err := goheif.ExtractExif(fi)
if err != nil {
log.Printf("Warning: no EXIF from %s: %v\n", fin, err)
}
img, err := goheif.DecodeImage(fi)
if err != nil {
log.Fatalf("Failed to parse %s: %v\n", fin, err)
}
fo, err := os.OpenFile(fout, os.O_RDWR|os.O_CREATE, 0644)
if err != nil {
log.Fatalf("Failed to create output file %s: %v\n", fout, err)
}
defer fo.Close()
w, _ := newWriterExif(fo, exif)
err = jpeg.Encode(w, img, nil)
if err != nil {
log.Fatalf("Failed to encode %s: %v\n", fout, err)
}
log.Printf("Convert %s to %s successfully\n", fin, fout)
}
What is done
-
Changes make to @bradfitz's (https://github.com/bradfitz) golang heif parser
- Some minor bugfixes
- A few new box parsers, noteably 'iref' and 'hvcC'
-
Include libde265's source code (SSE by default enabled) and a simple golang binding
-
A Utility
heic2jpg
to illustrate the usage.
License
-
heif and libde265 are in their own licenses
-
goheif.go, libde265 golang binding and the
heic2jpg
utility are in MIT license
Credits
- heif parser by @bradfitz (https://github.com/go4org/go4/tree/master/media/heif)
- libde265 (https://github.com/strukturag/libde265)
- implementation learnt from libheif (https://github.com/strukturag/libheif)
TODO
- Upstream the changes to heif?
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].