声网提供以下工具,方便你在推流之前对媒体文件进行离线预处理。你可根据实际需求选择:
声网 Media Streaming Server SDK 支持推送以下类型的 MP4 文件:
由于媒体文件容器格式和编码格式多种多样,为了更好地适配接收端的声网 RTC SDK,我们对推流的文件编码格式有如下要求:
在推流之前,你需要使用转码工具 mediaConvert,对文件进行转码处理。
步骤:
./streaming_convert.sh ${INPUT} ${OUTPUT}
说明:
转码后文件名将变为 agora-xxx.mp4。如想使用其他文件名,你可自行修改脚本。
如果你想修改转码设置,可参考以下 FFmpeg 设置说明在转码脚本 streaming_convert.sh
中进行修改。
./ffmpeg-4.2 -y -i ${Input} -strict -2 -acodec libopus -ar 48k -ab 64k -ac 2 -vcodec libx264 -preset veryfast -x264-params bframes=0:weightp=0:ref=1:keyint=15 -vf "format=yuv420p" -r 15 ${Output}
设置 | 说明 |
---|---|
-y |
如果目标文件已存在,强制覆盖写入。 |
-i ${Input} |
设置待转码 MP4 文件的路径,无需修改。 |
-strict -2 |
如果 FFmpeg 版本较低,需要设置该参数来开启 AAC 编码。 |
-acodec libopus |
音频编码格式首选 Opus 编码,同时可以兼容 AAC 编码。 |
-ar 48k |
音频采样率必须设为 48 kHz。 |
-ab 64k |
音频编码码率建议设为 64 Kbps。 |
-ac 2 |
声道数建议设为 2。 |
-vcodec libx264 |
视频编码格式必须设为 libx264。 |
-preset veryfast |
编码优化选项设为 veryfast。如果你的机器性能较好,可以采用 veryslow 来进行编码。 |
-x264-params bframes=0:weightp=0:ref=1:keyint=15 |
x264 编码参数。该参数是为了适配声网 RTC SDK 端的播放效果,无需修改。 |
-vf "format=yuv420p" |
视频色彩空间设为 yuv420p。该参数是为了适配声网 RTC SDK 端的视频选项,无需修改。 |
-r 15 |
视频帧率建议设为 15 fps。 |
${Output} |
转码后 MP4 文件的存放路径。 |
媒体降噪工具 mediaDenoise 可实现以下功能:
步骤:
./pcmDenoise ${INPUT} ${OUTPUT} ${声音增益dB} ${输出视频分辨率}
说明:
AI 补帧工具 AIInterpolation 可以在两个相差不大的视频片段中进行插帧,实现平滑的播放效果。
参考以下对比图查看补帧效果:
未经 AIInterpolation 处理的视频衔接效果
经过 AIInterpolation 处理的视频衔接效果
使用步骤:
python3 run.py --input0 ${input path} --input1 ${input path} --output ${output path}
说明:
--input0:
第一个 MP4 文件的路径。--input1:
第二个 MP4 文件的路径。--output:
输出 MP4 文件的路径。美颜工具 faceBeauty 可以调整媒体文件的亮度、平滑度、和红色度,实现自然的基础美颜效果。
使用步骤:
./faceBeauty -i ${input.mp4} -o ${output.mp4}
必填参数:
-i
: 待处理 MP4 文件的路径。-o
: 处理后 MP4 文件的路径。选填参数:
-b
: 亮度。取值范围为[0,5],默认值为 2。-r
: 红色度。取值范围为[0,5],默认值为 2。-s
: 平滑度。取值范围为[0,5],默认值为 2。