You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+25-44Lines changed: 25 additions & 44 deletions
Original file line number
Diff line number
Diff line change
@@ -3,12 +3,11 @@
3
3
4
4
This module provides an interface for media services, including:
5
5
6
-
* Bindings in golang for [ffmpeg 5.1](https://ffmpeg.org/);
7
-
* Opening media files, devices and network sockets for reading
8
-
and writing;
9
-
* Retrieving metadata and artwork from audio and video media;
10
-
* Re-multiplexing media files from one format to another;
11
-
* Fingerprinting audio files to identify music.
6
+
* Bindings in golang for [ffmpeg 6](https://ffmpeg.org/);
7
+
* Opening media files, devices and network sockets for reading and writing;
8
+
* Retrieving metadata and artwork from audio and video media;
9
+
* Re-multiplexing media files from one format to another;
10
+
* Fingerprinting audio files to identify music.
12
11
13
12
## Current Status
14
13
@@ -17,66 +16,48 @@ you are interested in, please see below "Contributing & Distribution" below.
17
16
18
17
## Requirements
19
18
20
-
In order to build the examples, you'll need the library and header files for [ffmpeg 5.1](https://ffmpeg.org/download.html) installed. The `chromaprint` library is also required for fingerprinting audio files.
21
-
22
-
On Macintosh with [homebrew](http://bew.sh/), for example:
19
+
In order to build the examples, you'll need the library and header files for [ffmpeg 6](https://ffmpeg.org/download.html) installed.
20
+
The `chromaprint` library is also required for fingerprinting audio files. On Macintosh with [homebrew](http://bew.sh/), for example:
23
21
24
22
```bash
25
-
brew install ffmpeg chromaprint make
23
+
brew install ffmpeg@6 chromaprint make
26
24
```
27
25
28
26
There are some examples in the `cmd` folder of the main repository on how to use
29
27
the package. The various make targets are:
30
28
31
-
*`make all` will perform tests, build all examples and the backend API;
32
-
*`make test` will perform tests;
33
-
*`make cmd` will build example command-line tools into the `build` folder;
34
-
*`make clean` will remove all build artifacts.
29
+
*`make all` will perform tests, build all examples and the backend API;
30
+
*`make test` will perform tests;
31
+
*`make cmd` will build example command-line tools into the `build` folder;
32
+
*`make clean` will remove all build artifacts.
33
+
34
+
There are also some targets to build a docker image:
35
+
36
+
*`DOCKER_REGISTRY=docker.io/user make docker` will build a docker image;
37
+
*`DOCKER_REGISTRY=docker.io/user make docker-push` will push the docker image to the registry.
35
38
36
39
For example,
37
40
38
41
```bash
39
42
git clone git@github.com:djthorpe/go-media.git
40
43
cd go-media
41
-
make
44
+
DOCKER_REGISTRY=ghcr.io/mutablelogic make docker
42
45
```
43
46
44
47
## Examples
45
48
46
-
There are two example [Command Line applications](https://github.com/mutablelogic/go-media/tree/master/cmd):
47
-
48
-
*`extractartwork` can be used to walk through a directory and extract artwork from media
49
-
files and save the artwork into files;
50
-
*`transcode` can be used to copy, re-mux and re-sample media files from one format to another.
51
-
52
-
You can compile both applications with `make cmd`which places the binaries into the `build` folder.
53
-
Use the `-help` option on either application to see the options.
54
-
55
-
56
49
## Media Transcoding
57
50
58
-
You can programmatically demultiplex, re-multiplex and re-sample media files using the following packages:
59
-
60
-
*`sys/ffmpeg51` provides the implementation of the lower-level function calls
61
-
to ffmpeg. The documentation is [here](https://pkg.go.dev/github.com/mutablelogic/go-media/sys/ffmpeg51)
62
-
*`pkg/media` provides the higher-level API for opening media files, reading,
63
-
transcoding, resampling and writing media files. The interfaces and documentation
0 commit comments