执行ffserver & ffmpeg时出现“/dev/video0 invalid argument”错误,啥原因?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了执行ffserver & ffmpeg时出现“/dev/video0 invalid argument”错误,啥原因?相关的知识,希望对你有一定的参考价值。

做视频采集系统。cmos摄像头在开发板上的Cmos摄像头程序测试过,可以采集,执行ffmpeg -f v4l2 -i /dev/video0……命令也没有错误,但ffserver 和 ffmpeg命令连起来执行(如./ffserver -f ffserver.conf & ./ffmpeg ffmpeg -f v4l2 -i /dev/video0……)就显示“/dev/video0 invalid argument”错误,怎么回事呢?

参考技术A VIDEO

将FFmpeg作为php中的进程运行时出现超时错误

【中文标题】将FFmpeg作为php中的进程运行时出现超时错误【英文标题】:Timeout error while running FFmpeg as a process in php 【发布时间】:2020-07-08 04:01:31 【问题描述】:

我正在尝试在运行时为 FFmpeg 视频压缩创建一个进程。在我的本地系统中,它在 30 秒内运行。当我尝试在服务器中运行它时,它在 60 秒后开始抛出超时错误。当我在服务器中手动运行命令时,大约需要 2 分钟。我知道php.ini 中的一些配置需要修改。我尝试将进程的配置更改为 300 秒。尽管如此,仍在输出相同的超时错误。

The process "/usr/bin/ffmpeg -i '/var/temp/5e7de5a9de7c2/creme bulee-01-infuse
the cream and milk.mp4' -s 1668x2224 -c:a copy '/var/temp/5e7de5a9de7c2/compre
ssed/temp_creme bulee-01-infuse the cream and milk_1668x2224.mp4'" exceeded th
e timeout of 60 seconds.

php.ini,我有如下配置:

max_execution_time = 300 
max_input_time = 300

如何阻止我的进程超时?

【问题讨论】:

是命令行脚本吗? @Vishal 是的,我正在创建一个命令作为运行时的进程。 php.ini 的当前位置是什么?你用的是linux服务器吗? 是的,它的 Linux 发行版 Ubuntu 和 path=/etc/php/7.2/apache2/php.ini 和 编辑这个 /etc/php/7.2/cli/php.ini 文件 【参考方案1】:

我有同样的错误,你需要在 FFMpeg::create 中添加设置并使用 FFMpeg::create

$ffmpeg = FFMpeg::create(
  array(
   'timeout' => 0, // The timeout for the underlying process
  )
);
$ffmpeg->open($video_path);

更多信息在这里https://github.com/PHP-FFMpeg/PHP-FFMpeg

【讨论】:

【参考方案2】:

php.ini 中的max_execution_time 指令不影响手册中所述的shell 命令(详见https://www.php.net/manual/en/function.set-time-limit.php)

我的猜测是您使用的是Symfony\Component\Process\Process,因为默认情况下它的超时时间正好是 60 秒,并且您的错误消息看起来很熟悉。如果我是对的,请try increasing the timeout:

$process = new Process($ffmpeg_cmdline);
$process->setTimeout(3600);
$process->run();

【讨论】:

以上是关于执行ffserver & ffmpeg时出现“/dev/video0 invalid argument”错误,啥原因?的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg+ffserver实现摄像头直播

添加水印时出现FFmpeg错误:未覆盖 - 退出

ffserver 的替代方案是啥?

FFmpeg:调用 Runnable 类时出现 java.lang.UnsatisfiedLinkError

在配置 ffmpeg 时出现错误“未找到 x264”

将FFmpeg作为php中的进程运行时出现超时错误