我正在寻找一种在ffmpeg上集成v4l2-ctl参数的方法。ffmpeg覆盖v4l2-ctl的问题,我需要特定的参数有v4l2-ctl :(我的v4l2-ctl命令是:
-v width=640,height=480,pixelformat=4 -p 30 -c h264_profile=0,repeat_sequence_header=1
我想使用这些参数,然后直接与FFMPEG流,我能做什么?
谢谢!
发布于 2021-02-21 06:22:21
您可以告诉FFmpeg使用video4linux2 (v4l2)作为输入“设备”(它把它当成了一个破坏者)。根据设备的不同,v4l2可以提供几种不同格式的视频(例如,原始视频(如yuv420p )或压缩视频(如h264,可能通过硬件加速器)。看起来您正在尝试使用h264,因此您可能在寻找以下内容:
ffmpeg -f video4linux2 -input_format h264 -video_size 640x480 -framerate 30 -i /dev/video0 out.h264ffmpeg将告诉v4l2提供带有给定帧和大小的H 264编码流作为FFmpeg的输入,ffmpeg将将流复制到文件out.h264中。您需要根据用例指定输出格式和选项。
注意:这假设您的输入设备是
/dev/video0。您可以使用v4l2-ctl --list-devices查看哪些设备可用。
v4l2的ffmpeg文档不清楚如何向v4l2提供附加标志(如h264_profile和repeat_sequence_header)。FFmpeg确实提供了用于编码的多种选择,但这可能要求您从v4l2指定原始视频-input_format,并使用FFmpeg的x264编码器,这可能比硬件编码器慢得多。
免责声明:这个问题可能属于超级用户或视频制作,而不是堆栈溢出,因为它只处理命令行工具。
https://stackoverflow.com/questions/63981348
复制相似问题