The disclosure relates generally to the field of exercise systems, and specifically and not by way of limitation, some embodiments are related to exercise systems including video.
Many people begin fitness regimes only to later abandon the effort. Unfortunately, for many people it can be very difficult to maintain motivation to continue these fitness regimes. Work, children, spouses, schooling, and other activities may seem to get in the way of a person's fitness goals. However, fitness goals can be a very important aspect of maintaining health and hopefully living a long life. Accordingly, the importance of working out cannot be understated. Thus, a need exists to help keep people motivated to continue the fitness routine so that they may reach their goals and hopefully remain healthy and active. One way to help maintain motivation is to exercise within a workout community where members of that workout community may keep each other motivated.
In one example implementation, an embodiment includes a wall of live streams that may include a plurality of live streams of participants of a workout session or members of a workout community that have signed up to be exhibited on the wall of live streams.
Disclosed are example embodiments of a method displaying a workout session. The method including determining whether a plurality of participants are eligible to be presented on a wall of live streams of a live workout session based at least on an eligibility criteria. Additionally, the method including displaying a video stream of a first participant from the plurality of participants on the wall of live streams based on the determination.
Disclosed are example embodiments of a system for displaying a workout session having a virtual wall of live streams. The system including one or more processors and a memory coupled to the one or more processors. The memory has instructions that when executed cause the one or more processor to determine whether a plurality of participants are eligible to be presented on a wall of live streams of a live workout session based at least on an eligibility criteria. Additionally, the memory has instructions that when executed cause the one or more processor to display a video stream of a first participant from the plurality of participants on the wall of live streams based on the determination.
The features and advantages described in the specification are not all-inclusive. In particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes and may not have been selected to delineate or circumscribe the disclosed subject matter.
The foregoing summary, as well as the following detailed description, is better understood when read in conjunction with the accompanying drawings. The accompanying drawings, which are incorporated herein and form part of the specification, illustrate a plurality of embodiments and, together with the description, further serve to explain the principles involved and to enable a person skilled in the relevant art(s) to make and use the disclosed technologies.
The figures and the following description describe certain embodiments by way of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein. Reference will now be made in detail to several embodiments, examples of which are illustrated in the accompanying figures. It is noted that wherever practicable similar or like reference numbers may be used in the figures to indicate similar or like functionality.
Streams on the BODCast wall can be moderated by a moderator using a moderator tool (see
In an example embodiment, below the stage links, there is a date selector 204, with arrows 206 to toggle and a Jump 208 feature to use a calendar for date navigation. The bottom section 210 shows Class Tiles, which are broken up into three sections; Upcoming 212 (classes that are scheduled but have not opened to the public to join), Live/Open 214 (classes where members can join into the lobby before a class, and currently running Live classes), and Past 216 (any classes that have been ended, closed, and/or encoded).
In an example embodiment, data provided in the class tile 218 may include, but is not limited to, scheduled time (hover to see UTC time), Duration, Stage, and Playlist type; Class Name; Class ID and Video ID; both are displayed as blue click-to-copy links; and Enter button brings you to the stage using that class data. In an example embodiment, in the event that a class is scheduled to use a First Play playlist, but the playlist data cannot be found in the FeedFM environment, an example system may show a UI warning as a red border outline and an exclamation mark next to the class time 220.
Once preview portion 950 is populated and the layout is desirable, the moderator can activate the view and make it live. This means preview portion 950 will appear as a BODCast wall on a live stream workout session. Once the BODCast wall is live, the moderator can make any changes to preview portion 950 and then apply the changes as desired.
In some embodiments, the moderator can select any of the streams of the BODCast wall to immediately remove it from the BODCast wall. In this way, the moderator can control the quality of the streaming content.
The moderation of the BODCast wall can also be done using a moderation module (not shown), which can be AI-enabled to detect inappropriate attire, languages, and/or background of a stream. The moderation can include algorithms (e.g., instructions) configured to cause one or more processor to populate the BODCast wall with streams based one or more eligibility criteria, which can be one or more of the participants' characteristics, current performance metrics (e.g., current heart rate zone, maximum heart rate), past performance metrics, number of followers in the workout community, community score, and workout attire. For instance, the moderation module can analyze each participant in the cast view portion 910 to determine the participant's eligibility criteria. Each participant can then be assigned an exhibition score based on the eligibility criteria. For example, a participant can be given a high exhibition score based on number of workout session he/she has successfully completed. The exhibition score can be adjusted based on how many successful heart-zone targets the participants have performed. In another instance, the exhibition score can be adjusted based on the community score of the participant. Each participant can have an overall/total exhibition score based on the totality of the eligibility criteria.
In some embodiments, the moderation module can automatically populate and modify the BODCast wall based at least on the overall exhibition score of each participant. The moderation module can create a list of exhibition priority based on the overall exhibition score. The BODCast wall can be populated based on the list of exhibition priority.
In some embodiments, the moderation module can continuously analyze each stream of the BODCast wall to look for inappropriate content such as inappropriate attire, background image(s), and/or inappropriate behavior (e.g., physical gestures, incorrect exercise movements). The moderation module can include one or more pre-trained AI engines configured to identify and classify attire, background image(s), and behavior. Based on the one or more AI engines classifications, the moderation module can remove a participant from the BODCast wall. For example, during a workout session, one of the participants on the BODCast wall removes his shirt. In this example, the AI engine will recognize that the participant is shirtless and therefore violates one of the eligibility factors of the BODCast wall. As a result, the AI engine will immediate remove the participant from the BODCast wall and replaces him with another participant in the waiting room.
The moderation module can also analyze the stream of each participant in the waiting room, which can be a virtual waiting room that queue up participants for the BODCast wall. The waiting room also provide notice to the participants that there video session will soon be exhibited on the BODCast wall. In this way, the participants can pay attend and perhaps improve their performance.
Similarly,
In an example embodiment, when the user is in a stage, the user may see the interface separated into several sections. The top row, containing connection buttons 3002 to join as a trainer, monitor a trainer, generate display links, generate a BODCast link, and the music player. The middle area 3004 may be where we find the Displays; here a user may modify the layout of the displays, assign users to screens, and then use the “View” button 3006 to see what the output looks like. Directly below the stages you will also see the options 3008 to “Clear All” displays, and the “Apply/Discard” options alongside the “Clear All” option. Continuing down, may be a button for the “Danger Zone” 3010. Because these buttons should not be used without understanding what they do, they may come with an alert pop-up that checks to determine if a user is moving through their actions too fast. The “Danger Zone” 3010 is discussed in more detail below.
In an example embodiment, on the bottom of the display (now shown if there are no Cast members connected) the moderator may be given a list of all Cast connections, along with a low-resolution video feed of each one.
In an example embodiment, to the right of these is where the trainer feed 3012 may be displayed. In an example, a user may not see any video there when no trainer has connected. Additionally, in an example, to the right of that in the top right corner, a connection status indicator 3014 may be given, with a chat icon 3016 directly to the right of that. In an example, the chat may be where moderators can send direct chats to an individual user, or an Announcement, which may go to all connected BODcast members. In an example, click on the Chat button 3016 to open up the chat window. To send a message to an individual, click “Chat” next to the user's name. To send an announcement to all members, click “Announcement” at the top of the chat window.
In an example embodiment, the connection buttons 3002 may be used to join as a Trainer/Monitor Trainer Feed. Open this in a new tab, and a user may begin the trainer feed. The trainer feed may be what the participants will see when the participants sign on. A user may also monitor the trainer feed using the button to the right of the “join as trainer” button. Note that in an example embodiment, the “monitor trainer feed” may be mirrored by comparison to what you see on the trainer feed, e.g., under “join as a trainer.” The trainer and monitor connections may both automatically connect. In an example embodiment, the need for a moderator to select “connect” by default is removed. When a connection is lost or cut off, the Connect button may be presented as an option.
When generating a link and setting an expiration time (e.g., Auto Sign-In Until) this does not mean that the link is invalid after that time. When a machine has signed in using this link, the machine may continue to authenticate with that browser until the user of the machine invokes a clear cache or reset to the machine. In an example embodiment, this may remain valid for up to 30 days.
For testing purposes, a user may want to generate a “forever link” which has no time constraints for joining and clicking “Copy Forever Link” may give you this encrypted link for a 30-minute class in an example embodiment. Note that all links are encrypted, and you can decrypt the link using the button to the left of the “forever link” button.
In an example embodiment, the fill button, “Fill,” 3402 may fill all empty tiles on a display. If the display grid is empty, this will fill every tile, and will appear the same as using “Spread” 3404. However, in some examples, the difference between Fill and Spread may be that if there were already tiles populated by Cast members, the Fill button will preserve those tiles and only fill empty tiles. Using this feature, a user may expect the empty tile(s) to be filled in order starting with the least used Cast member on the Cast list, and then by order of most-to-least recent joined (e.g., top to bottom). The spread button, “Spread” 3404 may be used to fill all tiles on a display grid and may not preserve any pre-populated tiles. The shuffle button, “Shuffle” 3406 may populate tiles on a display that are shuffled. In an example, no new users are brought in.
If a user has made changes to a Display Grid but decide that they do not want to apply these changes, the user may simply click “DISCARD” and no changes will be applied. Once Cast members are added to the display, a user may clear all video tiles by clicking “CLEAR.” Additional controls may be accessed through Individual Video Controls for Cast members by clicking the triple-dot menu on their video feed, covered in item 3408. The context menu for the Cast member contains the following items:
Remove from Displays: if done on the display grid, this will remove a Cast member from that one instance in the display grid. If done on the Cast list, this will remove them from that display entirely. Remove from All Displays: clicking this anywhere (grid or list) will remove all instances of the Cast member. Force Disconnect: this will disconnect the Cast member from the class but does not prevent them from rejoining the class. Toggle Video: toggles the video feed of the Cast member on or off in the studio. Toggle Audio: to turn audio on and off. Favorite: gives preference to the Cast member(s) when Filling or Spreading onto a display. Exclude: prevents the Cast member from being selected during Fill or Spread operations.
When returning to the main moderator page, a user may notice the option below the displays to “Clear All”; in an example embodiment, this button may clear all participants from the displays, will not disconnect participants, and will not affect the trainer feed (they should stay connected). Be sure to click Apply All to make the changes take hold; click Discard All to revoke changes.
An example may include a “danger zone.” A Reset Stage may be a button that refreshes the Tokbox session ID, disconnects the trainer and all Cast members, and clears all Displays. In an example embodiment, when clicked the user may see an alert saying, “Are you sure? If you continue, the trainer and all BODcast members will be disconnected” (or some other warning message). In an example embodiment, a validator of expected behavior should include seeing the blue link below the stage name being updated, displays may be emptied, and a brief disconnect/reconnect may be confirmed by the indicator in the upper right corner (e.g., it will turn orange and say “Connecting,” then turn green once connected again). In an example embodiment, this button may be a combination of our previous two separate buttons, “Renew Session ID” and “Clear the Stage.”
Example embodiments may allow for joining a class. Checking behavior of the moderator tool while in a class may be done by clicking on a class listed in the main page. An Upcoming class should have data such as what time it starts, class name, duration, stage name, which music feed is to be used, and an “Enter” button to the right. Click “Enter” to be brought to the moderator page for that class. A user may notice that when you enter a class, you now have access to class state buttons located in the header control bar, and the moderator can move a class through six states: (1) Upcoming, (2) Open, (3) Live, (4) Past, (5) Closed, and (6) Encoded.
In an example embodiment, the state change button may be disabled until a user unlock the state change button, e.g., using the toggle. In an example embodiment, a user may only be allowed to make one state change per unlock. In an example embodiment, a user may see the state change occur, and then verify that the class state has changed by returning to the main page and seeing that the class has gone from “Upcoming” to “Open”, if you selected an Upcoming class.
In an example embodiment, to organically see this function in action, log into Studio Client, and enter a class with valid First Play playlist attached to it. Move the class to Live, and let the class run for 2 minutes. Then open the Music Player; this should organically show you how the FP Drop-In feature works.
In an example embodiment, some buttons should not be used lightly unless fully understood. A catastrophic event could include, but is not limited to, something such as an electrical fire in the studio, or a trainer experiencing a medical event. Clicking the Catastrophe button may display the following alert, in some examples: “Are you sure? If you continue, the trainer and all BODcast members will be disconnected, the livestream will be cut, the video encoding process will be aborted, and the class will be removed from the schedule. ONLY CONTINUE IF YOU KNOW WHAT YOU'RE DOING AND A CATASTROPHIC EVENT HAS OCCURRED.” It will be understood that other alerts are possible in other embodiments. Should you choose to continue, one more alert will ask you: “Are you REALLY sure? Do not click OK if you're not 100% sure.” It will be understood that other alerts are possible in other embodiments. Clicking OK once more may trigger the Catastrophe event, and a message will be sent to the Cast members letting them know that the class was ended. This may be verified by looking in the Network tab when the event is triggered, and you will see the post request showing the message was sent.
An example embodiment may include systems and methods for displaying a workout session. For example, the method may include determining whether a plurality of participants are eligible to be presented on a wall of live streams of a live workout session based at least on an eligibility criteria, and displaying a video stream of a first participant from the plurality of participants on the wall of live streams based on the determination.
In an example embodiment, the eligibility criteria may include one or more performance metrics. In another example embodiment, the eligibility criteria may include one or more previous performance metrics. In an example embodiment, the eligibility criteria may include a community score of each of the plurality of participants. Accordingly, determining whether a plurality of participants are eligible to be presented on a wall of live streams of a live workout session may include comparing one of these to a predetermined metric to determine eligibility or comparing participants against each other to fill a predetermined number of spots on the wall. Displaying a video stream may include transmitting a selected video stream to a device and the device converting the transmitted signal to a video image.
In an example embodiment, the method may further include monitoring the video stream of the first participant to detect inappropriate activity and removing the video stream of the first participant from the wall of live streams based on detection of inappropriate activity.
In an example embodiment, the monitoring to detect inappropriate activity may include analyzing, using one or more AI-engines, the video stream of the first participant to identify and classify inappropriate attire.
In an example embodiment, the monitoring to detect inappropriate activity may include analyzing, using one or more AI-engines, the video stream of the first participant to identify and classify inappropriate images in the background of the participant's video.
In an example embodiment, the monitoring to detect inappropriate activity may include analyzing, using one or more AI-engines, the video stream of the first participant to identify and classify inappropriate gestures.
In an example embodiment, the wall of live streams comprises a plurality of live streams of participants at various remote locations.
The embodiments described above are considered novel over the prior art and are considered critical to the operation of at least one aspect of the disclosure and to the achievement of the above-described objectives. The words used in this specification to describe the instant embodiments are to be understood not only in the sense of their commonly defined meanings, but to include by special definition in this specification: structure, material or acts beyond the scope of the commonly defined meanings. Thus, if an element can be understood in the context of this specification as including more than one meaning, then its use must be understood as being generic to all possible meanings supported by the specification and by the word or words describing the element.
The definitions of the words or drawing elements described above are meant to include not only the combination of elements which are literally set forth, but all equivalent structure, material or acts for performing substantially the same function in substantially the same way to obtain substantially the same result. In this sense it is therefore contemplated that an equivalent substitution of two or more elements may be made for any one of the elements described and its various embodiments or that a single element may be substituted for two or more elements in a claim.
Changes from the claimed subject matter as viewed by a person with ordinary skill in the art, now known or later devised, are expressly contemplated as being equivalents within the scope intended and its various embodiments. Therefore, obvious substitutions now or later known to one with ordinary skill in the art are defined to be within the scope of the defined elements. This disclosure is thus meant to be understood to include what is specifically illustrated and described above, what is conceptually equivalent, what can be obviously substituted, and also what incorporates the essential ideas.
In the foregoing description and in the figures, like elements are identified with like reference numerals. The use of “e.g.,” “etc,” and “or” indicates non-exclusive alternatives without limitation, unless otherwise noted. The use of “including” or “includes” means “including, but not limited to,” or “includes, but not limited to,” unless otherwise noted.
As used above, the term “and/or” placed between a first entity and a second entity means one of (1) the first entity, (2) the second entity, and (3) the first entity and the second entity. Multiple entities listed with “and/or” should be construed in the same manner, i.e., “one or more” of the entities so conjoined. Other entities may optionally be present other than the entities specifically identified by the “and/or” clause, whether related or unrelated to those entities specifically identified. Thus, as a non-limiting example, a reference to “A and/or B”, when used in conjunction with open-ended language such as “comprising” can refer, in one embodiment, to A only (optionally including entities other than B); in another embodiment, to B only (optionally including entities other than A); in yet another embodiment, to both A and B (optionally including other entities). These entities may refer to elements, actions, structures, processes, operations, values, and the like.
The present application is a continuation of U.S. patent application Ser. No. 17/747,683, filed May 18, 2022, which claims priority to U.S. Provisional Patent Application No. 63/190,188, filed May 18, 2021, the disclosures of which are hereby incorporated by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
63190188 | May 2021 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17747683 | May 2022 | US |
Child | 18119763 | US |