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

Как заставить 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", то следует избегать любой буферизации.

Связанный контент