开始使用 avconv 将视频和音频流式传输到 RTMP 服务器,但我对此完全陌生,并且不明白这是如何组合在一起的。
我收到了这个命令,请有人解释一下为什么有多个 -f、-i 参数,例如?参数的顺序有多大影响?
avconv -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - -vcodec copy -acodec aac -ab 128k -g 50 -strict experimental RTMP_URL
提前致谢。
最佳答案
-i
之前的任何内容都适用于下一个输入,之后的任何内容都适用于输出
first input
-re
实时处理(每秒读取 1 秒媒体)
-ar 44100
输入音频速率为每秒 44100 个样本
-ac 2
输入音频为立体声
-acodec pcm_s16le
输入音频使用每个样本的有符号 16 位小端值进行编码
-f s16le
输入音频容器是原始的
-ac 2
输入音频为立体声(您指定两次,只需要一次)
-i/dev/zero
读取无限长的零流以用作原始音频源
second input
-f h264
输入视频源为原始h264(附件b)流
-i -
输入视频应从标准输入读取
output
-vcodec copy
将视频从输入复制到输出而不进行转码
-acodec aac
将音频从任何格式转码为 acc
-ab 128k
生成的音频应编码为 128kbps
-g 50
视频编码器应每 50 帧创建一个关键帧。注意:这不会执行任何操作,因为您正在使用 -vcodec copy
因为没有使用视频编码器
-strictexperimental
一些 ffmpeg 功能是实验性的,不应使用。这将允许使用这些功能。这可以在命令中的任何位置设置。
RTMP_URL
发送输出结果的格式和位置。
您可能还需要在输出中添加 -f flv
才能使 Ramp 正常工作。
关于parameters - 请您解释一下这些 avconv 参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57092327/