• Stars
    star
    164
  • Rank 230,032 (Top 5 %)
  • Language
    Rust
  • License
    MIT License
  • Created over 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

FFI bindings for FFmpeg inner libraries.

Rusty FFmpeg

Doc Crates.io Downloads CI

Cross platform FFI bindings for FFmpeg inner libraries. This is a crate that:

  1. Linking FFmpeg libraries for you.
  2. Generates Rust binding for FFmpeg libraries.

Getting started:

To use this crate, you need to set several environment variables.

The simplest usage:

*nix

Build ffmpeg statically and set FFMPEG_PKG_CONFIG_PATH to the path of the generated FFmpeg pkg-config files. And you don't need to set other environment variables for static linking.

(Hint: setting FFMPEG_PKG_CONFIG_PATH to some placeholder value will leave a rusty_ffmpeg probing system library.)

Windows

rusty_ffmpeg can link FFmpeg using vcpkg. Install vcpkg, check documentation of the vcpkg crate for the environment variables to set, then it works.

Fine-grained usage:

You need to set several environment variables for both linking and binding generating procedures.

To link:

  1. Dynamic linking with pre-built dylib: Set FFMPEG_DLL_PATH to the path of dll or so. (Windows: Put corresponding .lib file next to the .dll file.)

  2. Static linking with pre-built staticlib: Set FFMPEG_LIBS_DIR to the path of the FFmpeg pre-built libs directory.

To generate bindings:

  1. Compile-time binding generation(requires the Clang dylib): Set FFMPEG_INCLUDE_DIR to the path to the header files for binding generation.

  2. Use your pre-built binding: Set FFMPEG_BINDING_PATH to the pre-built binding file. The pre-built binding is usually copied from the OUT_DIR of the compile-time binding generation, by using it you don't need to regenerate the same binding file again and again.

Linking FFmpeg installed by package manager on (*nix)

You can enable system-wide FFmpeg linking by enabling feature link_system_ffmpeg.

Attention

FFI is not that easy, especially when you are dealing with a big old C project. Don't feel depressed when there are some problems. The CI check already has some typical ffmpeg compilation and use cases for you to check. File an issue if you still have any problem.

More Repositories

1

vardbg

A simple Python debugger and profiler that generates animated visualizations of program flow, useful for algorithm learning.
Python
1,094
star
2

ccextractor

CCExtractor - Official version maintained by the core team
C
675
star
3

rutorrent-flutter

A ruTorrent-based client in Flutter
Dart
127
star
4

taskwarrior-flutter

This is the repo of mobile app of taskwarrior
Dart
109
star
5

Flood_Mobile

GSoC 21' @CCExtractor. A modern mobile UI for various torrent clients with a Node.js backend and Flutter frontend.
Dart
99
star
6

Rekognition

Free and Open Source alternative to Amazon's Rekognition service. CCExtractor Development | Poor Man's Rekognition
Python
96
star
7

ultimate_alarm_clock

Dart
66
star
8

beacon

Flutter application to share location with a group. (under development)
Dart
58
star
9

video2srt

Superfast online transcript generator with FFmpeg/wasm + whisper
Svelte
40
star
10

sample-platform

CCExtractor's Sample & CI platform. Developed during GSoC 2016
Python
24
star
11

ccextractorfluttergui

A cross platform GUI for CCExtractor
Dart
23
star
12

Subtitle-Resync

A tool to automatically generate in-sync subtitles of different versions of the same base media (such as with edits)
C++
23
star
13

Deluge-mobile-remote-client

Deluge Mobile Client developed during GSOC 2021 @CCEXTRACTOR || Note "Please do flutter clean before making any pull request"
Dart
18
star
14

cimico

A python debugger video creator (knightron0's original implementation)
Python
12
star
15

PyBud

A Python tool that generates video visualizations for source code debugging.
Python
10
star
16

beacon-backend

backend for the beacon app, gsoc 2021
JavaScript
8
star
17

ProjectNephos

Recording/processing/uploading system - CCExtractor+Red Hen.
Vue
7
star
18

TDebugger

A advanced python debugger with live tracing.
Python
7
star
19

ccextractor-codein-playground

This is a learning repository for Code-In students to send their first pull requests.
5
star
20

ccextractor-org-media

All media (banners, logos, etc) related to CCExtractor Development.
4
star
21

fastfingers

FastFingers App
C
3
star
22

AZTinyDebug

Python Debugger that creates shareable video logs of a program's execution.
Python
3
star
23

website

www.ccextractor.org
2
star
24

sample-platform-v2

TypeScript
1
star
25

CCExtractorWindowsGUI

Source code for the simple but functional Windows GUI for CCExtractor
C#
1
star
26

show_specific_dictionaries

TV show specific dictionaries, for spelling corrections
1
star
27

ccx_testsuite

A testing tool to keep CCExtractor consistent over coding changes. Developed during GSoC 2014
C#
1
star