Вырезать видео через определенное время?

1054
user391502

Итак, я узнал, как вырезать видео в определенный период времени, используя следующую команду

ffmpeg -i input.wmv -ss 00:00:30.0 -c copy -t 00:00:10.0 output.wmv ffmpeg -i input.wmv -ss 30 -c copy -t 10 output.wmv 

Так что это работает, но работает на видеофайле output.wmv. Как я могу сделать это в реальном времени? По сути, я хочу, чтобы камера работала и записывала 24/7, и когда я нажимаю кнопку, она сохраняет последние 30 секунд. Так что это значит что-то старше 30 секунд мне больше не нужно. Итак, что я хочу сделать, это по сути отрезать все кадры, которые старше 30 секунд, от входного потока (веб-камеры), чтобы я не заполнил HDD за один день.

1
Я не вижу простого способа сделать это, но вы могли бы записывать в другой файл каждые несколько минут и удалять старые файлы? Обрезать файл с самого начала, вероятно, сложно? barrycarter 9 лет назад 0
2 возможных проблемы, 1) возможно ли, что кадры будут потеряны, когда поток записи начинается / останавливается? 2) Скажем, я делаю каждую 1 минуту, если кто-то нажимает кнопку в 1:15, у меня будет только 1-минутный клип и 15-секундный клип. user391502 9 лет назад 0
2) Но если вам нужно всего 30 секунд, вам хватит 1 минуты и 15 секунд? 1) вы можете попробовать перекрывающиеся записи, но это может не сработать. barrycarter 9 лет назад 0
Извините, если пост был сбит с толку, я имею в виду, что камера будет работать 24/7. Затем, для демонстрации, вы будете милым каждую 1 минуту, затем, скажем, в 8:00:15 вы нажмете кнопку, у вас будет только 15 секунд фильма (в главном ролике) или 1 минута в предыдущем ролике. user391502 9 лет назад 0
О, так вам просто нужна длительность видеофайла, а затем вырежьте последние 'n' секунд, если это необходимо? barrycarter 9 лет назад 0

1 ответ на вопрос

1
dstob

http://sonnati.wordpress.com/2012/07/02/ffmpeg-the-swiss-army-knife-of-internet-streaming-part-v/

"5. Record a stream endlessly rotating target file"

That handles your circular buffer.

You might have to do a little experimenting to see what works for you to get the previous 30 seconds. There are a number of ways to do that so it'll be up to the implementer.

Вы должны предоставить фактический контекст, а не просто ссылку. Что если ссылка исчезнет? См. [Как написать хороший ответ?] (Http://superuser.com/help/how-to-answer) и [Как ссылаться на материал, написанный другими] (http://superuser.com/help/referencing ). LordNeckbeard 9 лет назад 1