使用 ffmpeg 将 RTSP + 音频发送到 RTMP 服务器
Send RTSP + Audio to RTMP server with ffmpeg
我已成功将 rtsp 视频流发送到 rtmp 服务器 (facebook),但无法使用 ffmpeg 使用音频。
如果我从本地摄像头播放 RTSP 音频效果很好。
这是我使用的命令 (ubuntu 服务器 16.0.4 LTS - ffmpeg 2.8.11):
sudo ffmpeg -f lavfi -i anullsrc -rtsp_transport tcp -i "rtsp://admin:admin@192.168.1.2/mode=real&idc=1&ids=1" -tune zerolatency -vcodec libx264 -g 60 -keyint_min 60 -r 30 -pix_fmt + -b:v 4000k -acodec copy -ar 44100 -b:a 128k -strict experimental -f flv "rtmp://live-api.facebook.com:80/rtmp/STREAM-KEY"
这里是完整的日志:
https://www.dropbox.com/s/vo05n0kehs75iba/ffmpeg-20180207-100549.log?dl=0
-acodec copy -ar 44100 -b:a 128k -strict experimental
是互斥的。您要求 ffmpeg 从源复制和多路复用音频格式,但同时您正在尝试对其进行编码。
应该是 -acodec copy
复制而不转码或 -acodec {codec} {additional audio params}
转码。
Facebook 仅接受 H.264 + AAC 组合,请参阅 https://www.facebook.com/facebookmedia/get-started/live 处的实时视频规范,而您实际上是从 PCM 的 anullsrc 复制音频格式。您应该使用 -acodec aac -ar 44100 -b:a 128k -strict experimental
转码为 AAC
我已成功将 rtsp 视频流发送到 rtmp 服务器 (facebook),但无法使用 ffmpeg 使用音频。
如果我从本地摄像头播放 RTSP 音频效果很好。
这是我使用的命令 (ubuntu 服务器 16.0.4 LTS - ffmpeg 2.8.11):
sudo ffmpeg -f lavfi -i anullsrc -rtsp_transport tcp -i "rtsp://admin:admin@192.168.1.2/mode=real&idc=1&ids=1" -tune zerolatency -vcodec libx264 -g 60 -keyint_min 60 -r 30 -pix_fmt + -b:v 4000k -acodec copy -ar 44100 -b:a 128k -strict experimental -f flv "rtmp://live-api.facebook.com:80/rtmp/STREAM-KEY"
这里是完整的日志: https://www.dropbox.com/s/vo05n0kehs75iba/ffmpeg-20180207-100549.log?dl=0
-acodec copy -ar 44100 -b:a 128k -strict experimental
是互斥的。您要求 ffmpeg 从源复制和多路复用音频格式,但同时您正在尝试对其进行编码。
应该是 -acodec copy
复制而不转码或 -acodec {codec} {additional audio params}
转码。
Facebook 仅接受 H.264 + AAC 组合,请参阅 https://www.facebook.com/facebookmedia/get-started/live 处的实时视频规范,而您实际上是从 PCM 的 anullsrc 复制音频格式。您应该使用 -acodec aac -ar 44100 -b:a 128k -strict experimental