我正在使用janus网关在网络浏览器中进行录制。录制完成后,将生成两个文件,一个是音频文件,另一个是视频文件。两者的格式都是mjr。如何将这两个文件组合在一起以创建单个文件?
发布于 2017-01-19 22:24:16
我也在处理同样的需求。
如果你安装了默认的janus网关,你只会错过这些步骤:
在下载git源代码的文件夹上运行以下命令:
./configure --enable-post-processing
然后
make
(sudo) make install
然后对每个您想要将其转换为音频/视频格式的文件运行此命令:
./janus-pp-rec /opt/janus/share/janus/recordings/video.mjr /opt/janus/share/janus/recordings/video.webm
./janus-pp-rec /opt/janus/share/janus/recordings/audio.mjr /opt/janus/share/janus/recordings/audio.opus
如果你还没有安装ffmpeg,运行这个(我在Ubuntu上,在其他发行版上,ffmpeg可能已经在apt-get仓库中了)
sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
sudo apt-get update
sudo apt-get install ffmpeg
最后,将音频与视频合并:
(sudo) ffmpeg -i audio.opus -i video.webm -c:v copy -c:a opus -strict experimental mergedoutput.webm
在那里,您可以构建一个shell脚本来自动转换cron上的所有mjr文件。
发布于 2015-08-09 05:12:41
我有一台very primitive example of doing this in C with Gstreamer。注意,这段代码非常混乱,但它应该会告诉你需要做什么。
以下是合并这些文件需要执行的操作的列表:
我做的第一步和janus的后处理器完全一样。步骤2我将每个rtp数据包从文件推送到gstreamer appsrc元素。步骤3和4是在gstreamer管道中完成的。
发布于 2021-05-29 14:51:03
sudo apt-get install libavutil-dev libavcodec-dev libavformat-dev
安装依赖项后...
./configure --prefix=/opt/janus --enable-post-processing
然后使用此BASH文件
#!/bin/bash
# converter.sh
# Declare the binary path of the converter
januspprec_binary=/opt/janus/bin/janus-pp-rec
# Contains the prefix of the recording session of janus e.g
session_prefix="$1"
output_file="$2"
# Create temporary files that will store the individual tracks (audio and video)
tmp_video=/tmp/mjr-$RANDOM.webm
tmp_audio=/tmp/mjr-$RANDOM.opus
echo "Converting mjr files to individual tracks ..."
$januspprec_binary $session_prefix-video.mjr $tmp_video
$januspprec_binary $session_prefix-audio.mjr $tmp_audio
echo "Merging audio track with video ..."
ffmpeg -i $tmp_audio -i $tmp_video -c:v copy -c:a opus -strict experimental $output_file
echo "Done !"
下面的命令应该可以做到这一点:
bash converter.sh ./room-1234-user-0001 ./output_merged_video.webm
https://stackoverflow.com/questions/28313891
复制相似问题