[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