Processing Livestreams: A Standardized Workflow
This guide outlines a streamlined procedure for processing Fedora livestreams (e.g., Flock, release parties, Fedora Week of Diversity), making it easier to edit and share recordings of these events. This standardized workflow utilizes tools and automation to minimize manual effort and ensure consistency.
-
LosslessCut (version 3.62.0 or later recommended)
-
Inkscape with the Next Generator extension (for creating thumbnails)
|
This workflow assumes you have basic familiarity with command-line tools and video editing concepts. |
Step 1: Prepare Talk Metadata
This process relies on a CSV file (comma-separated values) containing information about each talk (title, speakers, identifier). This data is used for automation and consistency.
You can automatically generate the CSV file and the description of the Talk using a Python script:
-
Create and Navigate to a directory:
mkdir commopscd commops -
Clone the repository:
git clone https://forge.fedoraproject.org/commops/tickets.git -
Navigate to the script:
cd tickets/scripts/conference -
Rename the sample description file and update it as per your requirement
cp description.template.txt.sample description.template.txt -
Run the script:
python conference.py <Pretalx Schedule URL>
|
Ensure the Pretalx schedule accurately reflects the livestream order. |
Step 2: Generate Timestamps and prepare CSV for splitting videos using LosslessCut
This ensures only the talk segments are kept and any non-talk portions (e.g., breaks, dead air) are excluded during splitting.
-
Review each recording and note the timestamps where each talk begins and ends.
-
Create a CSV file named
losslesscut.csvwith the following fields:-
start-time -
end-time -
title
-
Step 3: Split the video using LosslessCut
Use LosslessCut to split the video based on the generated CSV:
-
Open LosslessCut and drag the downloaded video from YouTube Studio into it.
-
Import the
losslesscut.csvfile to load the segments. -
Verify the segments align with the talks.
-
Click the export button and configure the settings:
-
Output folder
-
Output file names:
${SEG_LABEL}${EXT} -
Enable "Smart cut (experimental)"
-
-
Click Export to split the video.
Step 4: Create Thumbnails
Use Inkscape with the Next Generator extension to create thumbnails for each talk:
-
Design your thumbnail template in Inkscape, using variables like
%VAR_TalkName%and%VAR_PresenterNames%to represent data from your CSV. -
Go to Extensions > Export > NextGenerator.
-
Configure the export settings:
-
CSV file path
-
File format
-
File name pattern (e.g.,
%VAR_Identifier%)
-
-
Click Export to generate the thumbnails.
Step 5: (Optional) Add Thumbnail Intros
You can add a short intro with the thumbnail at the beginning of each talk using a Python script:
-
Navigate to the script:
cd commops/scripts/transcode -
Prepare a CSV file with talk data (if not already generated).
-
Configure the
config.inifile with settings for intro duration, etc. -
Run the script according to the instructions in the README.
Areas for Further Automation
While this workflow incorporates significant automation, some areas can be further improved:
-
Chapter Creation: Streamline the process of creating YouTube chapters.
-
Recombining Clips: Automate the handling of interruptions and inconsistencies in the livestream.
-
Video Reformatting: Automatically convert videos to optimal formats for processing.
-
Captions: Explore automated captioning and translation solutions.
-
Audio Processing: Implement loudness normalization and dynamic range compression.
-
End Cards: Automate the addition of end cards to videos.
These improvements would further enhance the efficiency and robustness of the livestream processing pipeline.
Want to help? Learn how to contribute to Fedora Docs โบ