【问题标题】:Capture camera + mic and encode to h264/aac on macOS在 macOS 上捕获相机 + 麦克风并编码为 h264/aac
【发布时间】:2019-05-16 22:30:05
【问题描述】:

我在 macOS 上即时捕获和编码音频+视频时遇到问题。

我尝试了两种选择:

  1. ffmpeg

    ffmpeg -threads 0 -f avfoundation -s 1920x1080 -framerate 25 -I 0:0 -async 441 -c:v libx264 -preset medium -pix_fmt yuv420p -crf 22 -c:a libfdk_aac -aq 95 -y
    
  2. gstreamer

    gst-launch-1.0 -ve avfvideosrc device-index=0 ! video/x-raw,width=1920,height=1080,framerate=25/1 ! vtenc_h264 ! queue ! mp4mux name=mux ! filesink location=out.mp4  osxaudiosrc device=0 ! audio/x-raw ! faac midside=false ! queue ! mux.
    

ffmpeg 选项有效,但仅适用于较低的分辨率。凭借更高的分辨率,Mac mini(2018 代)无法完成繁重的工作。我想是因为我用brew安装了ffmpeg,所以它没有在我的机器上编译,意味着它没有使用Mac中的h264硬件编码器?

gstreamer 选项也可以,但存在轻微的音频/视频同步问题(音频比视频提前 100 毫秒)。我似乎无法向 GStreamer 队列添加延迟(它会忽略它):

queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 min-threshold-time=100000000

谁有这方面的经验?谢谢!

【问题讨论】:

    标签: ffmpeg gstreamer h.264 capture aac


    【解决方案1】:

    队列中的更改仅影响内部流程。它对流经管道的缓冲区的时间戳没有影响。时间戳定义了音频和视频之间的同步方式。

    尝试在视频或音频路径上使用identity 元素,并通过ts-offset 属性设置一些时间戳偏移量。

    【讨论】:

    • 感谢您的回答!我会试试这个。不过,我想知道是否有一种好的方法来实现 A/V 同步?我 100% 确定源是同步的(SDI -> USB3 采集卡),我还通过使用 Quicktime Player 以 RAW 格式采集剪辑来验证这一点。所以也许我在管道中遗漏了一些东西来将它们同步在一起?
    • 默认情况下它们应该是同步的。但由于音频和视频源在您的情况下使用完全不同的 API,因此它们可能对初始设备的延迟有不同的理解。
    • 所以这意味着初始延迟是一个常数值,解决这个问题的最佳方法是使用您建议的 ts-offset?还是有其他方法可以同步它们?或者有没有更好的方法/工具来实现我的目标(即时从 h264/aac 中的采集卡捕获音频+视频)?
    • 我尝试添加标识元素,但它似乎并没有延迟音频。我尝试了两秒钟的音频延迟,以确保: gst-launch-1.0 -ve avfvideosrc device-index=0 !视频/x-raw,宽度=1280,高度=720,帧率=30/1! vtenc_h264 !队列 ! mp4mux 名称=mux !文件接收器位置=out.mp4 osxaudiosrc 设备=0!音频/x-raw ! faac 中间=假!身份 ts-offset=2000000000 !队列 !多路复用器。
    • 嗯,也许我的记忆在这里欺骗了我。我虽然这会起作用。通常我会在我的应用程序中添加一个焊盘探针并手动修改时间戳。但这需要一个真正的应用程序,并且不能单独通过 gst-launch 来完成。或者,您可能想为您的一个或两个源元素尝试do-timestamp=true。然后,在处理样本时,样本将获得时间戳。所以这将是一个真实的现场场景。如果数据在其中一条路径上确实存在延迟,您可能仍会受到影响。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多