如何解决FFMPEG + V4L2选项
我正在寻找一种在ffmpeg上集成v4l2-ctl参数的方法 问题什么ffmpeg覆盖v4l2-ctl,我需要特定的参数有v4l2-ctl :( 我的v4l2-ctl命令是:
v4l2-ctl -v宽度= 640,高度= 480,pixelformat = 4 -p 30 -c h264_profile = 0,repeat_sequence_header = 1
我想使用这些参数直接使用FFMPEG流式传输 我该怎么办?
谢谢!
解决方法
您可以告诉 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 的输入,ffmpeg 会将流复制到文件 out.h264
中。您需要根据您的用例指定输出格式和选项。
注意:这里假设您的输入设备是 /dev/video0
。您可以使用 v4l2-ctl --list-devices
查看哪些设备可用。
从 ffmpeg documentation for v4l2 中不清楚如何向 v4l2 提供额外的标志(例如 h264_profile
和 repeat_sequence_header
)。 ffmpeg 确实提供了用于编码的 multitude of options,但这些可能需要您指定来自 v4l2 的原始视频 -input_format
并改用 ffmpeg 的 x264 编码器,这可能比硬件编码器慢得多。
免责声明:这个问题可能属于超级用户或视频制作而不是 Stack Overflow,因为它只涉及命令行工具。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。