Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: jpg -> avi  (Прочитано 2556 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3195
    • Просмотр профиля
jpg -> avi
« : 18 Сентября 2017, 20:56:34 »
Здравствуйте!

Есть ли возможность поток jpg от камеры с motion jpeg непрерывно преобразовывать в avi,
но чтобы не слишком ресурсоёмко?
Сейчас это делается из сохранённых jpg скриптом, в котором jpeg2yuv из заданного
количества jpg, сохранённых на диске, строит несжатый поток и он через pipe передаётся ffmpeg.
Это поглощает 100% ресурсов процессора и делается уже после сохранения всех jpg,
а надо, чтобы avi-файл строился непрерывно и не требовал всей мощности процессора,
т.к. он должен ещё декодировать jpg.
Пётр.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7441
  • Luck Tales
    • Просмотр профиля
Re: jpg -> avi
« Ответ #1 : 19 Сентября 2017, 05:58:31 »
Есть ли возможность поток jpg от камеры с motion jpeg непрерывно преобразовывать в avi,
но чтобы не слишком ресурсоёмко?
возможно всё. для начала ffmpeg (avconv) с правильными настройками.
Правильней будет, если вы полностью озвучите задачу
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: jpg -> avi
« Ответ #2 : 19 Сентября 2017, 07:17:59 »
что smartcam я могу уже jpg -> mp4.
только прямой.

а где jpg гле взять в папку?


Wars ~.o

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3195
    • Просмотр профиля
Re: jpg -> avi
« Ответ #3 : 19 Сентября 2017, 09:19:43 »
Частота кадров avi опредeляется частотой jpg в motion jpeg,
для цветной камеры это 1280x1024 и fps 20, для чёрно-белой - 1360x1040 И fps 16.
Там используется какой-то preset со словом verifast в названии, видеокодек libx264.
motion jpeg приняли, чтобы потом можно было просто просмотреть отдельные кадры.
Программа позволяет также воспроизводить сохранённые jpg как фильм, а также строить
из них avi-файл, при этом  он строится долго, примерно столько же времени,
сколько просматривается. Во время работы приходящие jpg декодируются и выводятся на экран.

Теперь требуется в реальном времени создавать avi-файл. Т.е. либо из приходящих jpg,
но так, чтобы это не занимало много ресурсов, либо сразу создавать avi, не декодируя jpg
и его и сохранять и выводить на экран, либо вообще отказаться от motion jpeg и сразу
получать видеопоток в форме фильма, но всё равно остаётся требование, чтобы любой момент
можно было потом рассматривать статически. Во всяком случае, что точно надо - чтобы во время
работы, когда идёт вывод на экран и сохранение фильма в файл, можно было просматривать
и уже сохранённый или сохраняемый файл, для контроля происходящего или поиска.
Пётр.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3195
    • Просмотр профиля
Re: jpg -> avi
« Ответ #4 : 19 Сентября 2017, 13:41:53 »
xradio, Благодарю за советы, для начала действительно попробую создавать avi сразу
из приходящих jpg. Отказаться от MJPEG, наверное, не удастся, т.к. там такие условия, что
в пути есть разрывы и в них разъёмы, из-за этого там бывают большие торможения, для
передачи непрерывного видеопотока это плохо, а jpg вроде бы приходят все.
Это не для вещания, а чтобы можно было на этом же компьютере во время работы, т.е. когда
продолжают приходить jpg, посмотреть уже сохранённый avi с желаемого момента.
Пётр.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: jpg -> avi
« Ответ #5 : 19 Сентября 2017, 14:11:23 »
v4l2-ctl -d /dev/video0 --all
?
Wars ~.o

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3195
    • Просмотр профиля
Re: jpg -> avi
« Ответ #6 : 20 Сентября 2017, 00:00:24 »
xradio, Там надо сохранять все jpg. Возможно, у меня там, кроме preset'а, указаны лишние параметры,
без которых будет быстрее или менее ресурсоёмко, например, наименьший bitrate и другие. Я попробую
создавать на ходу согласно данным здесь советам, тогда будет ясно.
Пётр.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3195
    • Просмотр профиля
Re: jpg -> avi
« Ответ #7 : 21 Сентября 2017, 13:32:34 »
Пока приведу опции ffmpeg для кодирования потока от jpeg2yuv в avi:
ffmpeg -b:v 4500k -minrate 4500k -maxrate 4500k -bufsize 4096k -r 20 -vcodec libx264 -vpre libx264-veryfast \
-x264opts direct=spatial:b-pyramid=normal:no-mixed-refs=1:8x8dct=1n-mbtree=1 -f avi
Почему bitrate везде одинаковый, уже не помню.
« Последнее редактирование: 22 Сентября 2017, 11:40:48 от Peter_I »
Пётр.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3195
    • Просмотр профиля
Re: jpg -> avi
« Ответ #8 : 22 Сентября 2017, 12:03:24 »
xradio, Благодарю за совет насчёт ffmpeg, я сейчас именно смотрю её опции,
но до yuv420p ещё не дошёл.
Но, когда есть готовые jpg, то удобнее конвертировать один поток, полученный от jpg2yuv.
У меня затруднение в том, что в любом случае придётся существенно изменять программу.
Сейчас приходящие jpg декодируются в Qt, получаются QImage и они выводятся на экран,
а jpg сохраняются на диске.

А чтобы на ходу строить avi и не делать лишнего, надо или отказаться от декодирования,
сразу создавать из них avi и уже его выводить на экран, надо ли при этом будет сохранять
jpg, пока неясно. Это и потребует существенного изменения в программе.

Либо оставить вывод на экран как сейчас, а avi строить из QImage, т.е. фактически из bmp.
Для этого надо поточечно создавать из него yuv, строками или весь файл, а потом самому
создавать из них yuv stream, я вчера нашёл, каков должен быть его формат, т.е. какие
заголовки надо вставлять и в начале самого потока должен быть его заголовок.
Преобразовать RGB->YUV или GRB->Y'CbCr вроде бы не проблема, например, я нашёл программу
для преобразования BMP->YUV, но ещё её не смотрел, но вообще там простые формулы.
Тут не надо будет переделывать программу в части вывода, но плохо то, что придётся
создавать свою утилиту для преобразования.
Пока не решил, что выбрать.
Пётр.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3195
    • Просмотр профиля
Re: jpg -> avi
« Ответ #9 : 22 Сентября 2017, 13:29:55 »
xradio, Опцию для пронумерованных файлов я, конечно, видел, а что avi - формат отживший, не знал.
Сечйас буду пробовать разные варианты, в т.ч. и с mp4 и без задания bitrate.
Пётр.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3195
    • Просмотр профиля
Re: jpg -> avi
« Ответ #10 : 22 Сентября 2017, 17:41:30 »
xradio, Благодарю, когда что-то получится, обращусь.
Сейчас я, как и раньше, попробовал построить avi-файл из jpg
тем же скриптом, но вообще не указывал bitrate для ffmpeg,
так он не построился.
Пётр.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3195
    • Просмотр профиля
Re: jpg -> avi
« Ответ #11 : 25 Сентября 2017, 16:45:27 »
avi без указания bitrate не построился по причине того, что я указал неверный preset,
похоже, не от той версии ffmpeg. С правильным строится и без указания bitrate,
при этом размер файла получился вдвое больше, чем при bitrate 4500k.
С ultrafast строится в полтора раза быстрее, чем с veryfast.
« Последнее редактирование: 26 Сентября 2017, 09:18:02 от Peter_I »
Пётр.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3195
    • Просмотр профиля
Re: jpg -> avi
« Ответ #12 : 25 Сентября 2017, 18:06:14 »
xradio, Благодарю за ответ. Мне важно понизить ресурсоёмкость, это важнее, чем размер.
С mp4 ещё не пробовал, попробую. У меня файл 50 секунд получился размером 62630k,
если со строкой с опциями -x264opts и размером 50642k, если без них. Разрешение 1280x1024.
Пётр.

Оффлайн Peter_I

  • Автор темы
  • Старожил
  • *
  • Сообщений: 3195
    • Просмотр профиля
Re: jpg -> avi
« Ответ #13 : 26 Сентября 2017, 09:38:26 »
xradio, С qp=14 драматически увеличивается размер: вообще без -x264opts - 50642k и 22с,
а  с qp=14 - 192969k и 23с. Потребление ресурсов не смотрел.
Пётр.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: jpg -> avi
« Ответ #14 : 26 Сентября 2017, 09:57:50 »
jpg - это сжатии и процентов, экономит.
мне ненужно jpg.
что уже выше техники и скорости свободно размеры, за png качество.
Wars ~.o

 

Страница сгенерирована за 0.062 секунд. Запросов: 25.