官方教程https://trac.ffmpeg.org/wiki/StreamingGuide使用该-pix_fmt yuv420p
选项。
我也使用它,从教程中复制它,并从 FFmpeg 流式传输到 Youtube 对我有用。但是,尚不清楚它的用途,尤其是它是否是 Youtube 的必要选项,或者是否有更好的选项。
关于这个主题的 Youtube 文档似乎没有涵盖这一点,或者可能涵盖了但我不明白在哪里: https: //support.google.com/youtube/answer/1722171 ?hl= en。
有谁知道这方面的任何准确文件?
YUV420 是一种颜色空间,它使用色度子采样来减少表示图像所需的数据量。色度子采样是一种通过对色度(颜色)信息实施比亮度(亮度)信息分辨率低的图像编码方法。这利用了人类视觉系统对颜色差异的敏感度低于对亮度差异的敏感度。因此,YUV420 可以被认为是一种节省空间的格式,因为与不使用色度子采样的格式相比,它需要更少的数据来表示图像。
关于
-pix_fmt yuv420p
流式传输时使用的问题,我找到了一个既通用又特定于 YouTube 的答案。我的问题 ( https://trac.ffmpeg.org/wiki/StreamingGuide )中链接的 FFmpeg 流媒体指南通过
-vcodec libx264
选项使用 H.264 编解码器。这也是 YouTube 官方推荐的编解码器 ( https://support.google.com/youtube/answer/1722171?hl=en#zippy=%2Cvideo-codec-h )。YouTube 的具体答案可以在该文档中的句子中找到:
-pix_fmt yuv420p
这与选项完全对应。可以在 H.264 的 FFmpeg 文档中找到一般答案: https: //trac.ffmpeg.org/wiki/Encode/H.264。在页面底部,它说:
我假设您正在寻找的是: https: //en.wikipedia.org/wiki/YUV
YUV 实际上是这里的视频格式。
根据我的理解,它只描述像素/颜色,因此它也有效地未压缩。也就是说,您正在逐个像素地明确传达颜色数据,而没有任何导致 1080p 图像不是几兆字节大的典型技巧。
对于流式传输,我建议使用 OBS ( https://obsproject.com/de )。它是开源的并且也使用 ffmpeg,因为所有视频都可以。OBS 会很好地处理这些参数,它实际上是行业标准。
由于您在 Unix&Linux 下发布:OBS 可通过许多典型发行版的标准包源获得。