This is a C++ based FFmpeg Encoder/Decoder for Python 3.6+ & numpy 1.19+. Both Linux & Win versions are provided. Theoretically you do not need to install FFmpeg for using this library.
This is the second attempt for the PyPI release of mpegCoder
. To find the details of this project, please check
https://pypi.org/project/mpegCoder/3.2.4/
The released pre-compiled versions will cover the following OSs:
Linux | Windows |
---|---|
:heavy_check_mark: | :heavy_check_mark: |
and the following Python:
3.6 |
3.7 |
3.8 |
3.9 |
3.10 |
---|---|---|---|---|
:heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
This is the second attempt for the PyPI release of mpegCoder
. To find the details of this project, please check
https://pypi.org/project/mpegCoder/3.2.3/
The released pre-compiled versions will cover the following OSs:
Linux | Windows |
---|---|
:heavy_check_mark: | :heavy_check_mark: |
and the following Python:
3.6 |
3.7 |
3.8 |
3.9 |
3.10 |
---|---|---|---|---|
:heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
This is the second attempt for the PyPI release of mpegCoder
. To find the details of this project, please check
https://pypi.org/project/mpegCoder/3.2.2/
The released pre-compiled versions will cover the following OSs:
Linux | Windows |
---|---|
:heavy_check_mark: | :heavy_check_mark: |
and the following Python:
3.6 |
3.7 |
3.8 |
3.9 |
3.10 |
---|---|---|---|---|
:heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
This is the second attempt for the PyPI release of mpegCoder
. To find the details of this project, please check
https://pypi.org/project/mpegCoder/3.2.1/
The released pre-compiled versions will cover the following OSs:
Linux | Windows |
---|---|
:heavy_check_mark: | :heavy_check_mark: |
and the following Python:
3.6 |
3.7 |
3.8 |
3.9 |
3.10 |
---|---|---|---|---|
:heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
This is the second attempt for the PyPI release of mpegCoder
. To find the details of this project, please check
https://pypi.org/project/mpegCoder/3.2.0/
The released pre-compiled versions will cover the following OSs:
Linux | Windows |
---|---|
:heavy_check_mark: | :heavy_check_mark: |
and the following Python:
3.6 |
3.7 |
3.8 |
3.9 |
3.10 |
---|---|---|---|---|
:heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
From this version, the dependencies will not be packed with the .whl
package. When users load the lib for the first time, the dependencies will be downloaded from Github.
This is the first release version that contains all python built files. The details of the compilation are shown in the following table:
File | FFMpeg | Numpy | Python | GCC/G++ | OS |
---|---|---|---|---|---|
mpegCoder_3_2_0_Linux_py310.tar.xz |
5.0 |
1.22.3 |
3.10.4 |
10.2.1 |
Debian 11 |
mpegCoder_3_2_0_Linux_py39.tar.xz |
5.0 |
1.22.3 |
3.9.12 |
10.2.1 |
Debian 11 |
mpegCoder_3_2_0_Linux_py38.tar.xz |
5.0 |
1.22.3 |
3.8.13 |
10.2.1 |
Debian 11 |
mpegCoder_3_2_0_Linux_py37.tar.xz |
5.0 |
1.21.5 |
3.7.13 |
10.2.1 |
Debian 11 |
mpegCoder_3_2_0_Linux_py36.tar.xz |
5.0 |
1.19.5 |
3.6.15 |
10.2.1 |
Debian 11 |
Note that the above versions only show the environment when building mpegCoder
. It does not mean that they are the dependencies of running mpegCoder
. For example, users could use python 3.9.5
and numpy 1.19.5
to run mpegCoder
.
Running the Linux version may be a little bit tricky. Users need to follow the step 5 and 6 in the instructions of the source code :page_facing_up:. We copy the instructions here:
Extract the built module as mpegCoder.so
, then you could import it in the same directory. If you have built FFMpeg by our script, you do not need any other dependencies when importing the libs. However, if not, you may need to download the lib dependencies :package: and add the lib
folder to your LD_LIBRARY_PATH
:
mkdir -p /apps/ffmpeg-5.0
cd /apps/ffmpeg-5.0
wget -O- https://github.com/cainmagi/FFmpeg-Encoder-Decoder-for-Python/releases/download/deps-3.2.0/so-linux-ffmpeg_5_0.tar.xz | tar xJ -C "."
echo "export LD_LIBRARY_PATH=/apps/ffmpeg-5.0/lib:\$LD_LIBRARY_PATH" >> ~/.bashrc
export LD_LIBRARY_PATH=/apps/ffmpeg-5.0/lib:$LD_LIBRARY_PATH
Running mpegCoder
requires GLIBC>=2.29
. This requirement is not satisfied in some cases. However, if you have built FFMpeg by our script, the requirement would be fulfilled (i.e. you could skip this step). If users are using our pre-built dependencies, users may need to solve this problem by
ln -sf /apps/ffmpeg-5.0/lib-fix/libm-2.35.so /lib/x86_64-linux-gnu/libm.so.6
Then, users could import the package by
import mpegCoder
This is the first release version that contains all python built files. The details of the compilation are shown in the following table:
File | FFMpeg | Numpy | Python | VS | OS |
---|---|---|---|---|---|
mpegCoder_3_2_0_Win_py310.tar.xz |
5.0 |
1.22.3 |
3.10.4 |
2022 (v143) |
Windows 11 21H2 |
mpegCoder_3_2_0_Win_py39.tar.xz |
5.0 |
1.22.3 |
3.9.12 |
2022 (v143) |
Windows 11 21H2 |
mpegCoder_3_2_0_Win_py38.tar.xz |
5.0 |
1.22.3 |
3.8.13 |
2022 (v143) |
Windows 11 21H2 |
mpegCoder_3_2_0_Win_py37.tar.xz |
5.0 |
1.21.5 |
3.7.12 |
2022 (v143) |
Windows 11 21H2 |
mpegCoder_3_2_0_Win_py36.tar.xz |
5.0 |
1.19.5 |
3.6.15 |
2022 (v143) |
Windows 11 21H2 |
Note that the above versions only show the environment when building mpegCoder
. It does not mean that they are the dependencies of running mpegCoder
. For example, users could use python 3.9.5
and numpy 1.19.5
to run mpegCoder
.
The dynamic libraries could be downloaded from dll-win-ffmpeg_5_0.tar.xz :package:. To make mpegCoder
works, users need to place the dependencies in the same folder of mpegCoder
, for example:
.
|---mpegCoder.pyd
|---avcodec-59.dll
|---avformat-59.dll
|---avutil-57.dll
|---swresample-4.dll
`---swscale-6.dll
Users could also place the .dll
s in a folder that is added to the path. In this case, the mpegCoder.pyd
could be imported independently.
Then, users could import the package by
import mpegCoder
This release is used for storing the pre-compiled dependencies, including files and libs for FFMpeg. The version includes:
FFMpeg | include | libs | dynamic libs |
---|---|---|---|
5.0 (windows) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
5.0 (linux) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
Some of the dependencies may be automatically downloaded by some scripts.
The following archives are the pre-built FFMpeg on Linux. Because the FFMpeg does not release the shared library version for Linux. We have to use the scripts to build them. The following files are not actually used for building mpegCoder
, but the dependencies are extracted from them.
File name | FFMpeg ver. | GCC ver. | OS |
---|---|---|---|
linux-ffmpeg-shared-5.0.tar.xz |
5.0 |
10.2.1 |
Debian 11 |
This is the second attempt for the PyPI release of mpegCoder
. To find the details of this project, please check
https://pypi.org/project/mpegCoder/3.1.0-b/
The released pre-compiled versions will cover the following OSs:
Linux | Windows |
---|---|
:heavy_check_mark: | :heavy_check_mark: |
and the following Python:
3.5 |
3.6 |
3.7 |
3.8 |
3.9 |
---|---|---|---|---|
:heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
For the Linux case, we use a small trick to avoid the requirement of manylinux
. Although this package is tagged as manylinux
, it should only work on Debian or Ubuntu.
This is the first release version that contains all python built files. The details of the compilation are shown in the following table:
File | FFMpeg | Numpy | Python | GCC/G++ | OS |
---|---|---|---|---|---|
mpegCoder_3_1_0_Linux_py39.tar.xz |
4.4 |
1.21.1 |
3.9.6 |
8.3.0 |
Debian 10 |
mpegCoder_3_1_0_Linux_py38.tar.xz |
4.4 |
1.21.1 |
3.8.11 |
8.3.0 |
Debian 10 |
mpegCoder_3_1_0_Linux_py37.tar.xz |
4.4 |
1.21.1 |
3.7.11 |
8.3.0 |
Debian 10 |
mpegCoder_3_1_0_Linux_py36.tar.xz |
4.4 |
1.19.5 |
3.6.14 |
8.3.0 |
Debian 10 |
mpegCoder_3_1_0_Linux_py35.tar.xz |
4.4 |
1.18.5 |
3.5.10 |
8.3.0 |
Debian 10 |
Note that the above versions only show the environment when building mpegCoder
. It does not mean that they are the dependencies of running mpegCoder
. For example, users could use python 3.9.5
and numpy 1.19.5
to run mpegCoder
.
Running the Linux version may be a little bit tricky. Users need to follow the step 5 and 6 in the instructions of the source code :page_facing_up:. We copy the instructions here:
Extract the built module as mpegCoder.so
, then you could import it in the same directory. If you have built FFMpeg by our script, you do not need any other dependencies when importing the libs. However, if not, you may need to download the lib dependencies :package: and add the lib
folder to your LD_LIBRARY_PATH
:
mkdir -p /apps/ffmpeg-4.4
cd /apps/ffmpeg-4.4
wget -O- https://github.com/cainmagi/FFmpeg-Encoder-Decoder-for-Python/releases/download/deps-3.0.0/so-linux-ffmpeg_4_4.tar.xz | tar xJ -C "."
echo "export LD_LIBRARY_PATH=/apps/ffmpeg-4.4/lib:\$LD_LIBRARY_PATH" >> ~/.bashrc
export LD_LIBRARY_PATH=/apps/ffmpeg-4.4/lib:$LD_LIBRARY_PATH
Running mpegCoder
requires GLIBC>=2.29
. This requirement is not satisfied in some cases. However, if you have built FFMpeg by our script, the requirement would be fulfilled (i.e. you could skip this step). If users are using our pre-built dependencies, users may need to solve this problem by
ln -sf /apps/ffmpeg-4.4/lib-fix/libm-2.31.so /lib/x86_64-linux-gnu/libm.so.6
Then, users could import the package by
import mpegCoder