ffmpeg, використовуючи -re та -ss разом


1

Я використовую ffmpeg для прямого перегляду відео-файлу на сервер RTMP. Я використовую -reопцію, щоб переконатись, що відео передається з відповідною швидкістю до прямого джерела. Іноді я хочу передавати відео, починаючи з декількох хвилин. Однак, якщо я додаю -ss 00:03:00, наприклад, перші кілька кадрів не передаються в потоковому режимі, але ffmpeg все одно проходить через них зі -reшвидкістю, що означає, що я повинен зачекати (у цьому випадку) за три хвилини до виходу потоку, в який момент він починається три хвилини.

Це технічно те, про що я просив, але також марне в контексті. Чи є спосіб сказати ffmpeg початись у визначений час, але перейти безпосередньо туди, щоб він поводився корисно при використанні -re?

У списку розсилки користувачів ffmpeg є щонайменше два випадки, коли люди задаються питанням, як це зробити без очевидного рішення.


Будь ласка, покажіть фактичну команду та повний вихід консолі.
llogan

Відповіді:


1

Спробуйте вказати -ss 00:03:00 перед вхідним файлом.

Я не пробував цього з захопленням екрана / прямою трансляцією, але знаю, що це працює зі стандартним синтаксисом перекодування ffmpeg.

Наприклад, наступна команда введе файл, перекодує весь файл до h264, а потім збереже лише вихід, починаючи з позначки 3 хвилини.

ffmpeg -i [INPUT] -ss 00:03:00 -c:v h264 [output]

З іншого боку, наступна команда введе файл на 3 хвилинній позначці, перекодує з цієї точки, а потім збереже вихід. Вихідний файл повинен бути ідентичним вихідному вище, але оскільки перші три хвилини не декодуються, час обробки значно коротший.

ffmpeg -ss 00:03:00 -i [INPUT] -c:v h264 [output]

Знову ж таки, я не знаю, чи це працює з прямою трансляцією. Сподіваюся, це допомагає!


Ідеально! Тепер мені просто доводиться мати справу з тим, що assфільтр не помічає, що відео запускається в інший час, тому мої субтитри не збігаються ... навіть так, дякую тоні!
Suchipi

Для майбутніх читачів, які цікавляться, як налаштувати абонементи, корисна інформація міститься у програмі FFMPEG Bug # 2067 . В основному, щоб компенсувати 00:03:00 як в цьому прикладі, ви могли б зробити ffmpeg -ss 180 -i movie.mp4 -vf setpts=PTS+180/TB,ass=subs.ass,setpts=PTS-STARTPTS out.mp4(і замінити ass=subs.assз subtitles=subs.srtдля SRT субтитрів).
Suchipi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.