но иногда, неожиданно во время записи, ffmpeg останавливает запись видео и остается в последнем кадре (звук продолжает записываться). Сообщение об ошибке выглядит примерно так:
[video4linux2,v4l2 @ 0x23e51a0] Dequeued v4l2 buffer contains 414720 bytes, but 829440 were expected. Flags: 0x00002005. /dev/video0: Invalid data found when processing input
Я нашел почти нулевую информацию в Интернете об этом. Я нашел проблему, описанную как запрос функции здесь: https://trac.ffmpeg.org/ticket/4795
Кроме того, у меня были некоторые проблемы с предупреждением перед этой ошибкой, которое, похоже, не связано и не влияет на запись видео, но мне также интересно, что это означает:
Используя метод проб и ошибок, кажется, что предупреждения исчезают, когда я устанавливаю -f v4l2 -thread_queue_size 32и -f alsa -thread_queue_size 2048. Я не знаю почему. Когда я поднимаю размер очереди потока для видеовхода, например, до 512, у меня нет предупреждения, но я пропустил кадры.
Я хотел бы использовать ffmpeg для моих записей. У VLC нет проблем с записью, но у меня также есть проблемы с параметрами, я еще недостаточно изучил их. Если кто-то может предложить альтернативную команду для VLC, чтобы записать без потерь, я переключусь на VLC ...
Требуется полный вывод консоли от вашей команды.
LordNeckbeard 8 лет назад
0
Я добавил вывод в исходное сообщение
Vassilis Kotaras 8 лет назад
0
Я поражен, что почти ни у кого, похоже, нет подобных проблем. Я такой редкий? Я нашел почти нулевую информацию об этом, и никакого решения :(
Vassilis Kotaras 8 лет назад
0
Я признаю, что на самом деле не изучал ваш вопрос, но поскольку разработка FFmpeg настолько активна, первым шагом является тестирование недавнего `ffmpeg` из текущей ветки master git. [Скачать] (http://johnvansickle.com/ffmpeg/).
LordNeckbeard 8 лет назад
0
Я установил последнюю версию ffmpeg и кодеков, следуя инструкциям, приведенным здесь: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu, и теперь версия ffmpeg теперь N-79065-g7d9e064 (почему это странное число?). Раньше у меня была версия 2.7.6 из репозиториев Ubuntu). Во всяком случае, я получаю точно такую же ошибку: «буфер v4l2 в удаленном виде содержит 414720 байт и т. Д.» Я подозреваю, что это происходит, когда видеосигнал с ленты VHS плохой, а изображение нестабильно, но я ничего не могу с этим поделать.
Vassilis Kotaras 8 лет назад
0
2 ответа на вопрос
3
Vassilis Kotaras
I couldn't find any solution to this ffmpeg problem, and I recently found this article saying:
As it seems, the stk1160 device sends these broken frames through to the v4l2 device and once they reach ffmpeg, it chokes and reports invalid frames. Although that is part of the “honest” quality of ffmpeg, I consider it a bug here as it exits the transcoding process and makes ffmpeg unsuitable for the task at hand.
I compiled MPlayer (which contains mencoder) using the source code given at http://www.mplayerhq.hu
Попробуйте ffmpeg с этой командой: `ffmpeg -f alsa -ac 2 -i по умолчанию -f v4l2 -стандартный pal -err_detect ignore_err -i / dev / video0 -c: v libx264 -qp 0 -preset fast -strict -2 zzz.mp4 `
Gyan 8 лет назад
0
Я только что попробовал. То же самое происходит :(
Vassilis Kotaras 8 лет назад
0
0
phiresky
Это все еще ошибка в ffmpeg 3.3. Даже если ffplay корректно восстанавливается после этой ошибки (что для меня происходит при смене сцены / быстрой перемотке вперед), ffmpeg просто останавливает обработку кадров. У меня была та же проблема с этим устройством, и я не мог заставить mencoder использовать точные параметры (особенно в отношении деинтерлейсинга), которые я хотел, поэтому я использовал комбинацию mencoder (raw AVI для stdout) и ffmpeg (yadif deinterlace, map аудио, закодируйте x264 и mux в mkv), который прекрасно работает.
Вы, конечно, могли напрямую хранить необработанные данные AVI, но с ~ 70 ГБ / ч у меня не было достаточно места для этого.