【问题标题】:No sound when running ffmpeg on youtube live在 youtube live 上运行 ffmpeg 时没有声音
【发布时间】:2020-09-15 00:38:42
【问题描述】:

尽管我在 ffmpeg 方面的知识有限,但我还是设法使用在树莓派上运行的 ffmpeg 将我的鸟箱相机直播到 youtube。相机也有音频,通过在带有rtsp的windows中使用本地vlc,音频还可以。

但是,在 youtube 上没有声音(与 windows 本地使用的 rtsp 命令相同),我在 youtube studio 中看到了这个“警告”:“音频流的当前比特率 (0) 低于推荐的比特率. 我们建议对音频流使用 128 Kbps 比特率。"

如何通过 youtube 获取声音? 这是我运行的命令。该命令是在网上找到的,我将其用于我的使用,并立即使视频工作:

pi@raspberrypi:~ $ ffmpeg -f lavfi -i anullsrc -thread_queue_size 512 -rtsp_transport udp -i "rtsp://10.x.x.x:554/user=user&password=password&channel=1&stream=0.sdp?real_stream" -tune zerolatency -vcodec libx264 -use_wallclock_as_timestamps 1 -pix_fmt + -c:v copy -c:a aac -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/mykey
ffmpeg version git-2020-05-01-3c740f2 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 6.3.0 (Raspbian 6.3.0-18+rpi1+deb9u1) 20170516
  configuration: --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree
  libavutil      56. 43.100 / 56. 43.100
  libavcodec     58. 82.100 / 58. 82.100
  libavformat    58. 42.102 / 58. 42.102
  libavdevice    58.  9.103 / 58.  9.103
  libavfilter     7. 80.100 /  7. 80.100
  libswscale      5.  6.101 /  5.  6.101
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
Input #0, lavfi, from 'anullsrc':
  Duration: N/A, start: 0.000000, bitrate: 705 kb/s
    Stream #0:0: Audio: pcm_u8, 44100 Hz, stereo, u8, 705 kb/s
Guessed Channel Layout for Input Stream #1.1 : mono
Input #1, rtsp, from 'rtsp://10.x.x.x:554/user=user&password=password&channel=1&stream=0.sdp?real_stream':
  Metadata:
    title           : RTSP Session
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #1:0: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 1920x1080, 20 fps, 20 tbr, 90k tbn, 180k tbc
    Stream #1:1: Audio: pcm_alaw, 8000 Hz, mono, s16, 64 kb/s
Multiple -c, -codec, -acodec, -vcodec, -scodec or -dcodec options specified for stream 0, only the last option '-c:v copy' will be used.
Stream mapping:
  Stream #1:0 -> #0:0 (copy)
  Stream #0:0 -> #0:1 (pcm_u8 (native) -> aac (native))
Press [q] to stop, [?] for help
Output #0, flv, to 'rtmp://a.rtmp.youtube.com/live2/mykey':
  Metadata:
    encoder         : Lavf58.42.102
    Stream #0:0: Video: h264 (Main) ([7][0][0][0] / 0x0007), yuvj420p(pc, bt709, progressive), 1920x1080, q=2-31, 20 fps, 20 tbr, 1k tbn, 90k tbc
    Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc58.82.100 aac
[flv @ 0x2c43750] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly

【问题讨论】:

    标签: ffmpeg youtube


    【解决方案1】:

    您的命令正在使用 anullsrc 过滤器来生成静音音频。 YouTube 需要音频流。因此,如果用户的输入没有音频,则经常使用 anullsrc 制作静音音频来满足此要求。 ffmpeg 正在使用此无声音频而不是相机的音频。删除 anullsrc 因为你不需要它。

    用途:

    ffmpeg -thread_queue_size 512 -rtsp_transport udp -i "rtsp://10.x.x.x:554/user=user&password=password&channel=1&stream=0.sdp?real_stream" -c:v copy -c:a aac -f flv rtmp://a.rtmp.youtube.com/live2/mykey
    
    • 因为您是stream copying-c:v copy 的视频,所以我删除了无论如何都会被忽略的不必要的编码选项(-tune zerolatency -vcodec libx264 -use_wallclock_as_timestamps 1 -pix_fmt)。

    • 我删除了-strict experimental。当 FFmpeg AAC 编码器被认为是实验性的时,它曾经是必需的,但自 2015 年以来一直没有这种情况。然而,它仍然经常从过时的答案中复制和粘贴。

    【讨论】:

    • 使用新的调整设置(直接从上面的建议复制),我遇到缓冲,并在 youtube 工作室中看到此警告:“YouTube 没有收到足够的视频来保持一致的流媒体。因此观众会体验缓冲。”比特率降低了吗?
    • Youtube 工作室:“当前的比特率 (1282.17 kbps) 低于推荐的比特率。我们建议对流使用 4500 Kbps 的比特率。”如何加快比特率?我有 150 Mbps 光纤互联网,所以连接应该没问题....
    • @Bartonsen 这可能只是一个警告。 YouTube 期望每个宽度 x 高度具有一定的比特率,但这确实意味着您的流必须符合该范围。输出播放正常吗?如果是,则忽略它。使用流复制的优点是您不必重新编码它,这对 Pi 来说可能是一项太多的任务。
    • 感谢您的帮助。对此,我真的非常感激。不,流很长一段时间都不好。当我开始直播时,youtube 工作室说质量非常好,我确认视频和音频是完美的。但过了一段时间(可能是 5 分钟或 30 分钟或 1 小时)youtube-video 正在缓冲或已停止。 ffmpeg 仍在 pi 上运行。在 YT 工作室中,我看到(混合)警告,例如:“YouTube 没有接收到足够的视频来维持一致的流媒体。因此,观看者会遇到缓冲。”
    • 或“您的编码器发送数据的速度比实时快(每秒几秒钟的视频)。您必须将实时流式传输上传速率限制为大约每秒一秒钟的视频。”会不会是相机?这是一个中国 xmeye 鸟箱相机。在本地流式传输声音和视频很好。我注意到虽然相机上的时间戳时钟比现实世界运行得快/慢一点,但是有一个同步它的选项,我不时这样做,如果它已经滑到很多......(它可能每 24 小时滑动一两秒。)
    猜你喜欢
    • 2021-03-10
    • 1970-01-01
    • 2013-11-09
    • 2019-04-04
    • 2018-05-02
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多