Как синхронизировать два цикла видео с mplayer и upd?

Я пытаюсь синхронизировать два экземпляра mplayer с -upd-master и –udp-slave и заметить, что ведомое устройство занимает около секунды, когда мастер начинает цикл заново.

Я запускаю debian 7.1 с MPlayer SVN-r36545, и вот мои команды для двух видеороликов, работающих на том же SSD-устройстве i8 8GBram 240GB (действующем как сервер dhcp):

  • В vim, как я могу быстро переключаться между вкладками?
  • Показывать только текущее имя каталога (не полный путь) в приглашении bash
  • Configure предупреждает, что установленные библиотеки отсутствуют
  • Как добавить в файл как sudo?
  • Что мне нужно для разделения раздела для Windows и Linux?
  • Есть ли команда linux, например mv, но с регулярным выражением?
  • mplayer -vo xv -udp-master -udp-ip 10.42.0.255 -loop 0 Videos/HDV_0537.MP4 mplayer -vo xv -udp-slave -loop 0 Videos/HDV_0538.MP4 

  • Полный список команд Commandline
  • Должен ли я убить зомби-процесс в моей системе?
  • Не удалось загрузить ArchLinux на Macbook Pro 7.1 - сбрасывается в оболочку восстановления
  • Как выполнять команды на уровне root в Linux (Fedora) Live Media
  • Ext4 (dm-crypt) и NTFS (битлокатор) для общего раздела
  • Жесткий диск Seagate 3TB ST3000DM001, не распознанный Linux, вызывает зависание fdisk
  • One Solution collect form web for “Как синхронизировать два цикла видео с mplayer и upd?”

    Это было действительно очень сложно, потому что проблема заключалась в том, что -loop 0 я использовал на подчиненном устройстве, фактически ожидал, что мастер -loop 0 свою позицию и синхронизируется. На самом деле я поговорил с одним из моих друзей, который был одним из разработчиков mplayer, и он сказал мне, что я хотел сделать, это было невозможно.

    Таким образом, взлом, который я использовал, состоял в том, чтобы постоянно проверять текущую позицию подчиненного устройства и точно так же, как он попадает в EOF, перезагружая файл после определенного бит сна – который мне приходилось настраивать вручную …

    Сначала для настройки мастера используйте это:

     mplayer -udp-master -udp-ip 10.42.0.255 masterVideo.mp4 -loop 0 

    Для подчиненного я использовал следующий скрипт:

     #!/bin/bash fifo="/tmp/fifo" rm -rf $fifo mkfifo $fifo mplayer -nocache -slave -fixed-vo -idle -udp-ip 10.42.0.255 -udp-slave -udp-seek-threshold 0.5 -osdlevel 0 -input file=$fifo >$fifo.answer "slaveVideo.mp4" & somepid=$! echo $somepid function getpos() { local newpos=none while ! [[ "$newpos" =~ ANS_TIME ]]; do echo "get_time_pos" > $fifo newpos=$(tail -n 1 $fifo.answer) [[ "$newpos" =~ "EOF code: 1" ]] && { pos=-1; echo > $fifo.answer; return; } pos=${newpos#ANS_TIME_POSITION=} done pos=${pos#0} pos2=$(echo "$pos + 0.14" | bc ) printf "%.2f" "$pos2" } function getlen() { local newlen=none while ! [[ "$newlen" =~ ANS_LENGTH ]]; do echo "get_time_length" > $fifo newlen=$(tail -n 1 $fifo.answer) len=${newlen#ANS_LENGTH=} sleep 0.1 done len=${len#0} echo ${len} } len=$(getlen) while true; do pos=$(getpos) if [[ $pos == $len ]] then # YOU MUST TWEAK THE FOLLOWING # SLEEP TIME FOR YOUR MACHINE sleep 0.5 echo "loadfile /media/media/1.mp4" > $fifo fi done 

    Кстати, я использую скомпилированный mplayer – не mplayer2. Пауза работает очень чисто, как и пропустить … Однако очень важно, чтобы оба файла имели точно такую ​​же продолжительность и использовали одни и те же кодеки …

    Давайте будем гением компьютера.