0

Syncing Screens without BrightAuthor

We're creating a networked video wall with 12 screens. We're trying not to use BrightAuthor because we're working on Macs and we want the ability to easily swap out files. We've successfully used a similar script before, but now things are always a little off. We've updated the firmware on the brightsigns and have tried adjusting the frame rate and codecs, but nothing works. There is always a delay, but it changes from time to time.

Here are the specs:
Units: HD220s
Resolution: 1080p
Video Type: MP4 - H264 - 60FPS
Cables: HDMI

ANY IDEAS? THANKS FOR YOUR HELP.

 

Here is the master script we are using:

---

' Network Sync Script - MASTER

videoplaylist = "D03-B.mp4"

nc = CreateObject("roNetworkConfiguration", 0)
nc.SetIP4Address("192.168.1.32")
nc.SetIP4Netmask("255.255.255.0")
nc.SetIP4Broadcast("192.168.1.255")
nc.SetIP4Gateway("192.168.1.1")
nc.Apply()

v = CreateObject("roVideoPlayer")
p = CreateObject("roMessagePort")

v.SetPort(p)

mode = CreateObject("roVideoMode")
mode.SetMode("1920x1080x60p")
v.SetLoopMode(false)

ao = CreateObject("roAudioOutput", "Analog")
v.SetPcmAudioOutputs(ao)
v.SetVolume(0)

sender = CreateObject("roDatagramSender")
sender.SetDestination("255.255.255.255", 11111)

sync_the_videos:
    sender.Send("pl")
    v.PreloadFile(videoplaylist)
    sleep(5000)
    sender.Send("go")
    v.Play()
goto listen

listen:
    msg = wait(0, p)
    if type(msg) = "roVideoEvent" and msg.GetInt() = 8 then
        sleep(5000)
        goto sync_the_videos
    endif
goto listen

while true
    sleep(10000)
end while

---

Here is the slave script we are using:

---

' Network Sync Script - FOLLOWER

videoplaylist = "D03-C.mp4"

nc = CreateObject("roNetworkConfiguration", 0)
nc.SetIP4Address("192.168.1.33")
nc.SetIP4Netmask("255.255.255.0")
nc.SetIP4Broadcast("192.168.1.255")
nc.SetIP4Gateway("192.168.1.1")
nc.Apply()

v = CreateObject("roVideoPlayer")
p = CreateObject("roMessagePort")

v.SetPort(p)

mode = CreateObject("roVideoMode")
mode.SetMode("1920x1080x60p")
v.SetLoopMode(false)

ao = CreateObject("roAudioOutput", "Analog")
v.SetPcmAudioOutputs(ao)
v.SetVolume(0)

receiver = CreateObject("roDatagramReceiver", 11111)
receiver.SetPort(p)


listen:
    msg = wait(0, p)
    if type(msg) = "roDatagramEvent" and msg = "pl" then
        v.PreloadFile(videoplaylist)
    endif
    if type(msg) = "roDatagramEvent" and msg = "go" then
        v.Play()
    endif
    
goto listen

while true
    sleep(10000)
end while




autorun-follower.brs
autorun-master.brs

1 comment

  • 0
    Avatar
    ^UD\_$

    Hi Ben,

     

    We have experienced videos going out of sync, when some files had audio track, and some did not.

    If you have audio in this project, include the audio track on all synced files.

    Also, BrightSing now have sync feature, that is supposed to allow multiple players to chase the master more accurately than simple starting all files at once.

    Look this up in the documentation:

    CreateObject("roSyncManager", parameters as roAssociativeArray) 

     

    I hope that helped

    Udi

Please sign in to leave a comment.