diff --git a/Dockerfile b/Dockerfile
index 9a7fc233..b05610b6 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -13,6 +13,7 @@ RUN apt-get update \
build-essential \
python3 \
python3-pip \
+ ffmpeg \
&& rm -rf /var/lib/apt/lists/*
# Copy package.json and install npm dependencies
diff --git a/app/src/RtmpFile.js b/app/src/RtmpFile.js
index 66380947..1e16e1b9 100644
--- a/app/src/RtmpFile.js
+++ b/app/src/RtmpFile.js
@@ -1,8 +1,9 @@
'use strict';
+const config = require('./config');
+const ffmpegPath = config.server.rtmp && config.server.rtmp.ffmpeg ? config.server.rtmp.ffmpeg : '/usr/bin/ffmpeg';
const ffmpeg = require('fluent-ffmpeg');
-const ffmpegInstaller = require('@ffmpeg-installer/ffmpeg');
-ffmpeg.setFfmpegPath(ffmpegInstaller.path);
+ffmpeg.setFfmpegPath(ffmpegPath);
const Logger = require('./Logger');
const log = new Logger('RtmpFile');
diff --git a/app/src/RtmpStreamer.js b/app/src/RtmpStreamer.js
index 0ac6c90b..16756b90 100644
--- a/app/src/RtmpStreamer.js
+++ b/app/src/RtmpStreamer.js
@@ -1,9 +1,10 @@
'use strict';
+const config = require('./config');
const { PassThrough } = require('stream');
const ffmpeg = require('fluent-ffmpeg');
-const ffmpegInstaller = require('@ffmpeg-installer/ffmpeg');
-ffmpeg.setFfmpegPath(ffmpegInstaller.path);
+const ffmpegPath = config.server.rtmp && config.server.rtmp.ffmpeg ? config.server.rtmp.ffmpeg : '/usr/bin/ffmpeg';
+ffmpeg.setFfmpegPath(ffmpegPath);
const Logger = require('./Logger');
const log = new Logger('RtmpStreamer');
diff --git a/app/src/RtmpUrl.js b/app/src/RtmpUrl.js
index a53d1f39..bb9e9e8a 100644
--- a/app/src/RtmpUrl.js
+++ b/app/src/RtmpUrl.js
@@ -1,8 +1,9 @@
'use strict';
+const config = require('./config');
+const ffmpegPath = config.server.rtmp && config.server.rtmp.ffmpeg ? config.server.rtmp.ffmpeg : '/usr/bin/ffmpeg';
const ffmpeg = require('fluent-ffmpeg');
-const ffmpegInstaller = require('@ffmpeg-installer/ffmpeg');
-ffmpeg.setFfmpegPath(ffmpegInstaller.path);
+ffmpeg.setFfmpegPath(ffmpegPath);
const Logger = require('./Logger');
const log = new Logger('RtmpUrl');
diff --git a/app/src/Server.js b/app/src/Server.js
index 84370dee..50c304f8 100644
--- a/app/src/Server.js
+++ b/app/src/Server.js
@@ -44,7 +44,7 @@ dependencies: {
* @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
- * @version 1.4.76
+ * @version 1.4.77
*
*/
diff --git a/app/src/config.template.js b/app/src/config.template.js
index daffb25b..afc58fc2 100644
--- a/app/src/config.template.js
+++ b/app/src/config.template.js
@@ -76,6 +76,7 @@ module.exports = {
- apiSecret: The API secret for streaming WebRTC to RTMP through the MiroTalk API.
- expirationHours: The number of hours before the RTMP URL expires. Default is 4 hours.
- dir: Directory where your video files are stored to be streamed via RTMP.
+ - ffmpeg: Path of the ffmpeg installation on the system (which ffmpeg)
Important: Ensure your RTMP server is operational before proceeding. You can start the server by running the following command:
- Start: npm run nms-start - Start the RTMP server.
@@ -94,6 +95,7 @@ module.exports = {
apiSecret: 'mirotalkRtmpApiSecret',
expirationHours: 4,
dir: 'rtmp',
+ ffmpeg: '/usr/bin/ffmpeg',
},
},
middleware: {
diff --git a/package.json b/package.json
index 49e0fe71..e7eae5b2 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "mirotalksfu",
- "version": "1.4.76",
+ "version": "1.4.77",
"description": "WebRTC SFU browser-based video calls",
"main": "Server.js",
"scripts": {
@@ -55,7 +55,6 @@
"node": ">=18"
},
"dependencies": {
- "@ffmpeg-installer/ffmpeg": "^1.1.0",
"@sentry/integrations": "7.114.0",
"@sentry/node": "7.114.0",
"axios": "^1.7.2",
diff --git a/public/js/Room.js b/public/js/Room.js
index 3c047166..032c280b 100644
--- a/public/js/Room.js
+++ b/public/js/Room.js
@@ -11,7 +11,7 @@ if (location.href.substr(0, 5) !== 'https') location.href = 'https' + location.h
* @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
- * @version 1.4.76
+ * @version 1.4.77
*
*/
@@ -4032,7 +4032,7 @@ function showAbout() {
imageUrl: image.about,
customClass: { image: 'img-about' },
position: 'center',
- title: 'WebRTC SFU v1.4.76',
+ title: 'WebRTC SFU v1.4.77',
html: `