Как заставить mplayer или VLC начать воспроизведение видео в строго определенное время?

Я хочу, чтобы mplayer и VLC начали играть в точное время. Игрок должен:

  1. Загрузите видео файл, запишите его в буфер, подготовьте все;
  2. Подождите, пока время UNIX будет N секунд M миллисекунд
  3. Начните играть в соответствии с частотой кадров (без долгосрочных отклонений)

Как лучше этого достичь?

1 ответ

Вы можете использовать FIFO в качестве входа в MPlayer и начать воспроизведение в указанное время.

Я копирую и вставляю несколько минимальных примеров кода, которые я использовал в сценарии несколько лет назад, которые использовались для пропуска видео по причинам сценариев.

  1. Создать FIFO:

    [ ! -p /tmp/mplayer-fifo ] && mkfifo /tmp/mplayer-fifo
    
  2. Запустите MPlayer с, например,

    mplayer myfile.avi -input /tmp/mplayer-fifo
    
  3. Отправьте команду пропуска из другого скрипта с

    echo "seek 10" > /tmp/mplayer-fifo
    

Вместо этого вы можете использовать FIFO для запуска и приостановки видео. использование at запустить команду воспроизведения в определенное время.

Если видео начинается, а затем сразу же останавливается, а затем просто ждет "play" директива, то следует избегать любой буферизации.

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