[Sw-l] SignTube Program for SW captions on videos

John Carlson yottzumm at gmail.com
Mon Aug 14 22:22:48 UTC 2023


I'd like to hear more about SWML as I am creating a new streaming format
(which is currently unnamed, but a previous version had the extension .rg
for route graph, before that I was using serialized Java) for recording and
processing Humanoid information from MediaPipe. I'm having trouble with
networking using Python, so I haven't done much streaming yet, apparently
default sockets on python require many connections, so I might not be able
to do streaming unless I find a better socket library. I've tried turning
off my firewall, added exclusions to antivirus, and used a virtual
environment that was excluded from antivirus.  I get like a page or two of
data in the terminal on the server log, and I get: "ConnectionAbortedError:
[WinError 10053] An established connection was aborted by the software in
your host machine."  I'm on Windows 10.

My format approach is to do something like BVH (Biovision Hierarchy), but a
graph instead of a hierarchy (with From/To links for bones between two
joints), but I think I will be able to remove things from the "skeleton
graph," which is an important feature of my streaming format.   I'm
streaming with python that generates data from Google MediaPipe's
Holistic.  I haven't moved on from this to the MediaPipe's new tasks
structure, but I might if I can get x,y,z coordinates, even if I can't see
the skeleton on the video.  At least I'll have video (with opencv).  But
I'm moving away from Python, probably to JavaScript.  I don't see Java
being taken seriously by MediaPipe. Android/Kotlin, yes--I guess I could
learn Kotlin.

I would like to prove a client/server approach so I can separate the
skeleton geometry stream generation from the rest of the system.  I realize
that saving the stream to a file is an important first step, but if I can't
get networking working on my local system, I might use bash piping to go
from one tool to the next, or save to a file (yuck!). Using a pipe is more
private, but fewer features than networking.

Here's a Python program loop that has multiple connections (couldn't do
one), that actually *doesn't* work, Apparently, one's data needs to be
extremely short. It varies between the last string being "CHICKEN," "CROW,"
and "EOF."  I guess it's time to do the stackoverflow thing, if not Copilot.

import socket


sock = None

def msgSend(sock, data):
    if data:
        sock.send((data).encode())

def socketCreate():
    HOST, PORT = "localhost", 3000
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
    sock.connect((HOST, PORT))
    return sock


# Create a socket (SOCK_STREAM means a TCP socket)
if __name__ == '__main__':
    for i in range(1,2001):
        print(f"Connection {i}:");
        sock = socketCreate()
        msgSend(sock, "DUCK\n")
        msgSend(sock, "GOOSE\n")
        msgSend(sock, "RAVEN\n")
        msgSend(sock, "EAGLE\n")
        msgSend(sock, "CHICKEN\n")
        msgSend(sock, "CROW\n")
        sock.sendall("EOF\n".encode())
        sock.shutdown(socket.SHUT_RDWR)
        sock.close()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.linguistlist.org/pipermail/sw-l/attachments/20230814/cf473c29/attachment-0001.htm>


More information about the Sw-l mailing list