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
+89-3Lines changed: 89 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
# ffmpeg-cpp
2
-
A clean C++ wrapper around the ffmpeg libraries. Makes the most commonly used functionality of FFmpeg easily available for any C++ projects with an easy-to-use interface. The full power of FFmpeg compacted in 10 lines of C++ code: if this sounds useful to you, read on!
2
+
A clean C++ wrapper around the ffmpeg libraries which can be used in any C++ project or C# project (with DllImport or CLR). Makes the most commonly used functionality of FFmpeg easily available for any C++ projects with an easy-to-use interface. The full power of FFmpeg compacted in 10 lines of C++ code: if this sounds useful to you, read on!
3
3
4
4
# Installation
5
5
@@ -20,6 +20,10 @@ Currently, only a Windows environment with Visual Studio is supported. This is s
20
20
21
21
There are multiple demo projects included in the solution. Check out the demo-project for a thorough exploration of the features (demuxing, decoding, filtering, encoding, muxing) or one of the other examples for a simpler example to follow.
22
22
23
+
There is also a .NET Core compatible simplified interface included so that you can embed this project in your .NET Core projects.
24
+
25
+
## C++
26
+
23
27
To give you an idea, this code will load a video stream from a container, filter it, and write it back out to another container:
24
28
25
29
```C++
@@ -53,22 +57,104 @@ while (!demuxer->IsDone())
53
57
54
58
// Save everything to disk by closing the muxer.
55
59
muxer->Close();
60
+
```
61
+
62
+
If you use the included simple-interface library, which only supports a subset of the full library, using ffmpeg-cpp becomes even easier:
If you want to use ffmpeg-cpp in a C# project, you can easily do so by making your own C-wrapper around the
145
+
59
146
# Why?
60
147
61
148
I developed this project to be able to to integrate FFmpeg into our program without having to call the executable to do an operation. This is important because starting up an external executable tends to be blocked by antivirus software and can cause issues with users. It has been tested for the most common functionality, and some of the examples from https://github.com/FFmpeg/FFmpeg/tree/master/doc/examples are mirrored in the project as well.
62
149
63
150
# Roadmap
64
151
65
152
- Add Linux/Mac build support
66
-
- Audio filtering
67
153
- Adding proper unit tests
68
154
- Testing with more codecs, containers
69
155
70
156
# License
71
157
72
158
This library is licensed under LGPL (https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License).
73
159
74
-
Please note though that FFmpeg, which you will need to build this library, is not. Depending on how you build it, it is either LGPL or GPL. So once you use the LGPL-version of FFmpeg in your project, this library will be GPL too.
160
+
Please note though that FFmpeg, which you will need to build this library, is not. Depending on how you build it, it is either LGPL or GPL. So if you use the GPL-version of FFmpeg in your project, this library will be GPL too.
0 commit comments