【发布时间】:2019-05-16 22:30:05
【问题描述】:
我在 macOS 上即时捕获和编码音频+视频时遇到问题。
我尝试了两种选择:
-
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 -
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