【问题标题】:FFMPEG + V4L2 OPTIONSFFMPEG + V4L2 选项
【发布时间】:2021-01-06 21:41:23
【问题描述】:

我正在寻找一种将v4l2-ctl的参数集成到ffmpeg上的方法 ffmpeg覆盖v4l2-ctl和我需要特定参数的问题有v4l2-ctl :( 我的 v4l2-ctl 命令是:

v4l2-ctl -v width=640,height=480,pixelformat=4 -p 30 -c h264_profile=0,repeat_sequence_header=1

我想使用这些参数直接使用 FFMPEG 进行流式传输 我该怎么办?

谢谢!

【问题讨论】:

    标签: linux ffmpeg raspberry-pi v4l2


    【解决方案1】:

    您可以告诉 ffmpeg 使用 video4linux2 (v4l2) 作为输入“设备” (which it treats like a demuxer)。根据您的设备,v4l2 可以提供多种不同格式的视频(例如,像 yuv420p 这样的原始视频,或者像 h264 这样的压缩视频,可能通过硬件加速器)。看起来您正在尝试使用 h264,因此您可能正在寻找以下方面的内容:

    ffmpeg -f video4linux2 -input_format h264 -video_size 640x480 -framerate 30 -i /dev/video0 out.h264
    

    ffmpeg 将告诉 v4l2 提供一个具有给定帧速率和大小的 h264 编码流作为 ffmpeg 的输入,它会将流复制到文件 out.h264 中。您需要根据用例指定输出格式和选项。

    注意:这里假设您的输入设备是/dev/video0。您可以使用v4l2-ctl --list-devices 查看可用的设备。

    ffmpeg documentation for v4l2 中不清楚如何为 v4l2 提供额外的标志(例如h264_profilerepeat_sequence_header)。 ffmpeg 确实提供了multitude of options 用于编码,但可能需要您从 v4l2 指定原始视频-input_format 并改用 ffmpeg 的 x264 编码器,这可能比硬件编码器慢得多。

    免责声明:这个问题可能属于超级用户或视频制作,而不是 Stack Overflow,因为它只涉及命令行工具。

    【讨论】:

      猜你喜欢
      • 2020-10-05
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多