All Projects → ChaoticEnigma → h264-roi

ChaoticEnigma / h264-roi

Licence: other
H.264 video Region of Interest encoding tool, using x264

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
shell
77523 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to h264-roi

x264
🎥 A safe x264 wrapper for Rust.
Stars: ✭ 35 (-20.45%)
Mutual labels:  encoding, h264, x264
staxrip
StaxRip is a video encoding app for Windows with a unrivaled feature set and usability.
Stars: ✭ 132 (+200%)
Mutual labels:  encoding, x264
velvet-video
Java library for encoding / decoding / muxing / demuxing video and audio in various formats
Stars: ✭ 32 (-27.27%)
Mutual labels:  encoding, x264
Minih264
Minimalistic H264/SVC encoder single header library
Stars: ✭ 390 (+786.36%)
Mutual labels:  encoding, h264
node-sdk
Transloadit's official Node.js SDK
Stars: ✭ 51 (+15.91%)
Mutual labels:  encoding
python-bchlib
BCH library C Python module
Stars: ✭ 58 (+31.82%)
Mutual labels:  encoding
ffcvt
ffmpeg convert wrapper tool
Stars: ✭ 32 (-27.27%)
Mutual labels:  encoding
fast-text-encoding
Fast polyfill for TextEncoder and TextDecoder, only supports UTF-8
Stars: ✭ 78 (+77.27%)
Mutual labels:  encoding
VBCorLib
The VBCorLib framework brings many of the powerful .NET classes to VB6.
Stars: ✭ 81 (+84.09%)
Mutual labels:  encoding
sirdez
Glorious Binary Serialization and Deserialization for TypeScript.
Stars: ✭ 20 (-54.55%)
Mutual labels:  encoding
zAnalysis
zAnalysis是基于Pascal语言编写的大型统计学开源库
Stars: ✭ 52 (+18.18%)
Mutual labels:  h264
universal-base64
Small universal base64 functions for node.js and browsers
Stars: ✭ 25 (-43.18%)
Mutual labels:  encoding
cpp-bencoding
A C++ bencoding library supporting both decoding and encoding.
Stars: ✭ 20 (-54.55%)
Mutual labels:  encoding
cryptouri.rs
Rust implementation of CryptoURI: URN-like namespace for cryptographic objects with Bech32-based encoding
Stars: ✭ 33 (-25%)
Mutual labels:  encoding
librcnb
Everything can be encoded into RCNB.
Stars: ✭ 14 (-68.18%)
Mutual labels:  encoding
MV-Tractus
A simple tool to extract motion vectors from h264 encoded videos.
Stars: ✭ 83 (+88.64%)
Mutual labels:  h264
PPlayer
ffmpeg 4.0.2静态库从0开始一个播放器的搭建,支持rtmp、rtsp、hls、本地MP4文件播放,音视频同步,直播推流
Stars: ✭ 81 (+84.09%)
Mutual labels:  h264
tinyh264
A tiny WASM h.264 decoder, for node and browser
Stars: ✭ 139 (+215.91%)
Mutual labels:  h264
BaseNcoding
Library for encoding of binary data into strings using base32, base85, base128 and other algorithms.
Stars: ✭ 42 (-4.55%)
Mutual labels:  encoding
Nager.VideoStream
Get images from a network camera stream or webcam
Stars: ✭ 27 (-38.64%)
Mutual labels:  h264
H264-ROI
(H264 Region Of Interest) Encoder

h264-roi written by Charlie Waters
Programs used and linked libraries are copyright of their respective owners

h264-roi Build Dependencies:
libavformat
libavcodec
libavdevice
libavutil
libswscale
libswresample
libx264
libz
libmp3lame (sometimes the linker demands this, depending on avconfig.h config)

roi.sh Run Dependencies:
ffmpeg
libx264
libmp3lame

Ubuntu Packages:
$ sudo apt-get install libssl-dev libsqlite3-dev libavcodec-dev libswscale-dev libavformat-dev libavdevice-dev ffmpeg libx264-dev libmp3lame-dev

Specifically, ffmpeg must be built with support for libx264 and libmp3lame. This goes something like:
$ git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
$ cd ffmpeg
$ ./configure --enable-gpl --enable-libx264 --enable-libmp3lame
$ make
# make install

h264-roi Building:
$ git clone --recursive <h264-roi git url> h264-roi
$ mkdir h264-roi-build
$ cd h264-roi-build
$ cmake ../h264-roi
$ make

h264-roi Usage:
$ h264_roi <input_file> <output_file> -q <base_qp> [region] [...]
Where:
input_file = A planar (YUV) H264 video file (NO OTHER CHANNELS, THIS IS WHAT roi.sh IS FOR)
output_file = Where to write a planar (YUV420P) H264 video file
base_qp = Quantizer value from 0 to 51, where 0 is lossless, 51 is no longer video. This "compression factor" is applied to the entire frame.
region = A rectengle to specify a different quantizer value for. Edges are rouned to the macroblock (16x16 pixels). See below for format.

Region Format:
First specify two corners of a rectangle, then the desired quantization factor of the pixel inside the rectangle.
<first_corner_x>,<first_corner_y>,<second_corner_x>,<second_corner_y>:<quantizer_value>
Example: Leave the pixels in the rectangle with opposite corners (100,100) and (500,400) uncompressed: 100,100,500,400:0

roi.sh Usage:
$ sh roi.sh <input_file> <output_file> -q <base_qp> [region] [...]
Where:
input_file = A video file with audio
output_file = Where to write an MP4 file with H264 video and MP3 audio
base_qp = Same as above
region = Same as above

Exmaples:
(in build directory)

Re-Encode lol.avi (1920x1080) as lol.control.5.mp4 with base qp of 5, no regions of interest:
$ bash roi.sh "lol.avi" "lol.control.5.mp4" -q 5

Re-Encode lol.avi (1920x1080) as lol.roi.mp4 with base qp of 20 and qp of 5 in specified regions of interest:
$ bash roi.sh "lol.avi" "lol.roi.mp4" -q 20 0,125,102,681:5 0,828,324,1080:5 1810,118,1920,689:5 1608,766,1920,1080:5 572,839,1352,1080:5
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].