Как прочитать следующую ffmpeg инструкцию?

новичок l'm при обработке видеоданных.

  1. Я хотел бы понять, как прочитать следующую ffmpeg инструкцию ниже

    import subprocess
    L=subprocess.call('ffmpeg -i %s -r 1 -s qvga -t 1 -f image2 %s' % (videoName,frameName), shell=True)
    
  2. Через эту инструкцию, как l может адаптировать его для получения всех кадров данного видео?

Спасибо

0
задан 25 October 2017 в 13:59

2 ответа

Я хотел бы понять, как прочитать следующую ffmpeg инструкцию

Ваш ffmpeg команда полузапутывается путем сценариев, таким образом, фактическая команда не известна, но здесь является объяснением каждой опции:

  • -i указывает на вход.
  • -r 1 наборы производят частоту кадров к 1. Это не нужно, если Вы хотите произвести единственное изображение или если Вы хотите произвести все изображения. В этом примере это используется для вывода одного кадра в секунду, который пропустил бы много кадров.
  • -s qvga наборы производят ширину x высота к "qvga", который является псевдонимом для 320x240.
  • -t 1 устанавливает выходную продолжительность на 1 секунду. Это не нужно, если Вы хотите произвести единственное изображение или если Вы хотите произвести все изображения. Это часто добавляется молодыми пользователями, пытающимися производить единственное изображение, но -frames:v 1 должен использоваться вместо этого.
  • -f image2 Часто лишняя опция раньше устанавливала выходной формат или muxer. Это используется, если Ваше выходное имя неоднозначно (возможно, из-за сценариев). Иначе, ffmpeg автоматически выберет надлежащий muxer для выводов изображения.

как l может адаптировать его для получения всех кадров данного видео?

Самая простая, команда нев виде сценария для получения всех кадров:

ffmpeg -i input %04d.png

Это произведет 0001.png, 0002.png, 0003.png, и т.д., Если Вы хотите больше, чем числовая последовательность, можно использовать что-то как output_%05d.png который привел бы к output_00001.png.

Поскольку больше информации видит Документацию FFmpeg: Изображение Muxer.

1
ответ дан 2 November 2019 в 01:24
import subprocess
L=subprocess.call('ffmpeg -i %s -r 1 -s qvga -t 1 -f image2 %s' % (videoName,frameName), shell=True)

Информация:

  1. import subprocess: Модуль подпроцесса позволяет Вам запустить новые приложения из своей программы Python.

  2. L=subprocess.call(...): Присвойте вывод call() метод к переменной L.

  3. ffmpeg -i %s -r 1 -s qvga -t 1 -f image2 %s' % (videoName,frameName), shell=True: Команда для выполнения сюда ffmpeg

  4. -i %s: введите имя файла, полученное от videoName переменная-> input file url

  5. -r 1: частота кадров.

  6. -s qvga: формат кадра.

  7. -f image2: Вызовите формат файла ввода или вывода

  8. -t 1: При использовании в качестве выходной опции (перед выходным URL), прекратите писать вывод после того, как его продолжительность достигает продолжительности.

  9. % (videoName,frameName): Строка Python, форматирующая, который заменит %s последовательности в предыдущей строке с объектами в кортеже.

  10. shell=True: Используйте определенные функции оболочки как разделение слова или расширение параметра

Использование:

#!/usr/bin/env python

import subprocess 
L=subprocess.call('ffmpeg -r 5 -i out.ogv fmprg_%04d.png', shell=True)
L()
  • Сделайте исполняемый файл: chmod u+x filename.sh,
  • Выполнение с: ./filename.sh

Информация:

fmprg_%04d.png: Создает изображения с 0000, 0001, 0002, 0004, ... между fmprg_ и .png.

Читайте:

man ffmpeg

https://pythonspot.com/en/tag/subprocess/

1
ответ дан 2 November 2019 в 01:24

Другие вопросы по тегам:

Похожие вопросы: