Как сохранить потоковое видео за последнюю 1 минуту с помощью ffmpeg? - PullRequest
0 голосов
/ 04 августа 2020

У меня UV C камера / dev / video1. Камера всегда будет включена. но меня интересует только последний 1-минутный поток данных.

после поиска в Интернете я получил ffmpeg cmd:

./ffmpeg -f v4l2 -input_format mjpeg -video_size 320x240 -i /dev/video1 -c copy -f segment -segment_time 60 -segment_wrap 2 output.mkv

Однако я получил ошибку, и вот результат

  libavutil      56. 56.100 / 56. 56.100
  libavcodec     58. 97.100 / 58. 97.100
  libavformat    58. 49.100 / 58. 49.100
  libavdevice    58. 11.101 / 58. 11.101
  libavfilter     7. 87.100 /  7. 87.100
  libswscale      5.  8.100 /  5.  8.100
  libswresample   3.  8.100 /  3.  8.100
  libpostproc    55.  8.100 / 55.  8.100
Input #0, matroska,webm, from '/sdcard/Movies/output.mkv':
  Metadata:
    ENCODER         : Lavf58.49.100
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 320x240, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
[matroska @ 0x3899e10] Invalid segment filename template 'output.mkv'
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument

1 Ответ

1 голос
/ 04 августа 2020

Вы используете мультиплексор сегментов, который рассчитывает записать несколько файлов. Таким образом, он ожидает, что имя файла будет иметь спецификатор формата для серийного номера. Самый простой - %d, который будет заменен числом без заполнения.

ffmpeg -f v4l2 -input_format mjpeg -video_size 320x240 -i /dev/video1 -c copy -f segment -segment_time 60 -segment_wrap 2 output%d.mkv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...