Linux 如何结合音频和视频mjr文件生成一个文件?
我正在使用janus gateway在web浏览器中录制。录制完成后,将生成两个文件,一个是音频,另一个是视频。两者都有格式mjr。如何将这两个文件合并为一个文件?我有一个问题。注意,这段代码非常混乱,但它应该告诉您需要做什么 下面列出了合并这些文件需要执行的操作:Linux 如何结合音频和视频mjr文件生成一个文件?,linux,recording,janus-gateway,Linux,Recording,Janus Gateway,我正在使用janus gateway在web浏览器中录制。录制完成后,将生成两个文件,一个是音频,另一个是视频。两者都有格式mjr。如何将这两个文件合并为一个文件?我有一个问题。注意,这段代码非常混乱,但它应该告诉您需要做什么 下面列出了合并这些文件需要执行的操作: 构建RTP缓冲区列表,以便可以在文件中对其进行迭代。在本手册中有这样的例子 同时开始迭代您的文件。时间戳应该同步正常,尽管我遇到了数据包在写入时丢失或损坏的问题,这将破坏合并 我在这里解码媒体并重新编码,以便静态设置视频的帧率和大小
我做的第一步和janus后处理器完全一样。步骤2:我将每个rtp数据包从文件推送到gstreamer appsrc元素。步骤3和4在gstreamer管道中完成。我也在处理同样的需求 如果您安装了默认的janus网关,您只会错过以下步骤: 在下载git源的文件夹上运行此命令:
./configure --enable-post-processing
然后
然后对要将其转换为音频/视频格式的每个文件运行以下操作:
./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) ffmpeg -i audio.opus -i video.webm -c:v copy -c:a opus -strict experimental mergedoutput.webm
从那里,您可以构建一个shell脚本,在cron上自动转换所有mjr文件
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
我还需要在我的Debian系统上安装以下内容才能运行
janus pp rec
:apt get install-y libavutil54 libavcodec56 libavformat56
在通过ffmpeg视频转换后不显示,有什么想法吗?需要安装ffmpeg
#!/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