Skip to content

Commit

Permalink
Merge pull request #1 from freemocap/ffmpeg
Browse files Browse the repository at this point in the history
Direct FFmpeg calls
  • Loading branch information
philipqueen authored Feb 21, 2023
2 parents a4a5436 + c84e3d2 commit 47628b7
Show file tree
Hide file tree
Showing 6 changed files with 197 additions and 118 deletions.
33 changes: 33 additions & 0 deletions .github/workflows/python-testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Skelly Synchronize Tests

on:
pull_request:
branches: [ main ]


jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.x
uses: actions/setup-python@v4
with:
# Semantic version range syntax or exact version of a Python version
python-version: '3.9'
# Optional - x64 or x86 architecture, defaults to x64
architecture: 'x64'
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run tests with pytest
run: |
pip install pytest
pytest skelly_synchronize/test_test.py
- name: Upload pytest test results
uses: actions/upload-artifact@v3
with:
name: pytest-results-3.9
path: junit/test-results-3.9.xml
28 changes: 26 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,17 @@ This package synchronizes a set of videos of the same event by cross-correlating

# How to run

Synchronize your videos by setting the path to your freemocap data folder, your sessionID, and the file types of your videos into __main__.py, then run the file.
Synchronize your videos by setting the path to your freemocap data folder, your sessionID, and the file types of your videos into __main__.py, then run the file. The sessionID should be the name of a subfolder of your freemocap data folder, and should contain a subfolder called `RawVideos` containing the videos that need synching.

![Main](https://user-images.githubusercontent.com/24758117/220470598-580360ef-8d4f-447c-820e-cc4d2d544c07.png)

The terminal output while running should look like this:

<img width="1250" alt="TerminalOutput" src="https://user-images.githubusercontent.com/24758117/220470626-c3592b65-6d8f-439b-87e7-20b83d6aff0f.png">

A `SyncedVideos` folder will be created in the session folder and filled with the synchronized video files. The session folder will also have an `AudioFiles` folder containing audio files of the raw videos, which are used in processing.

<img width="626" alt="FileStructureAfterRunning" src="https://user-images.githubusercontent.com/24758117/220470692-2f573367-1737-4842-b23e-e6fb79b1e4c8.png">

## Installation

Expand All @@ -17,4 +27,18 @@ The following requirements must be met for the script to function:
1. Videos must have audio
2. Videos must be in the same file format
3. Videos must have overlapping audio from the same real world event
4. Videos must be in a folder titled "RawVideos", with no other videos in the folder
4. Videos must be in a folder titled "RawVideos", with no other videos in the folder

# Expected File Structure

To function correctly, Skelly Synchronize expects the following folder structure:
```
freemocap_data_folder:
sessionID:
RawVideos:
Cam0.mp4
Cam1.mp4
...
...
```
The camera names can be changed, and the file format may changed as well, although freemocap currently only uses `.mp4`.
2 changes: 1 addition & 1 deletion skelly_synchronize/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""Top-level package for basic_template_repo."""

__package_name__ = "skelly_synchronize"
__version__ = "v2023.01.1004"
__version__ = "v2023.01.1001"

__author__ = """Philip Queen"""
__email__ = "[email protected]"
Expand Down
Loading

0 comments on commit 47628b7

Please sign in to comment.