Live video on the AT Protocol
1#!/bin/bash
2
3# Splits a video stream apart into video and audio files and checks the discrepancy between them
4
5set -euo pipefail
6
7dir="$(mktemp -d)"
8ffmpeg -i "$1" -vn -c:a copy "$dir/audio.mkv" 2>/dev/null >/dev/null
9ffmpeg -i "$1" -an -c:v copy "$dir/video.mkv" 2>/dev/null >/dev/null
10videoDuration=$(gst-discoverer-1.0 "$dir/video.mkv" | grep "Duration" | sed 's/ Duration: 0:00:0//')
11audioDuration=$(gst-discoverer-1.0 "$dir/audio.mkv" | grep "Duration" | sed 's/ Duration: 0:00:0//')
12
13echo "Video duration: $videoDuration"
14echo "Audio duration: $audioDuration"
15echo "Difference (negative means audio is longer): $(node -p "$videoDuration - $audioDuration")"
16rm -rf "$dir"