Spaces:
Running
on
Zero
Running
on
Zero
File size: 2,141 Bytes
052cf68 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
#!/bin/bash
# Check number of arguments
if [ "$#" -ne 3 ]; then
echo "Usage: $0 <video_path> <title> <description>"
exit 1
fi
VIDEO_PATH="$1"
TITLE="$2"
DESCRIPTION="$3"
# Generate unique ID
UNIQUE_ID=$(uuidgen | cut -c 1-8)
# Create necessary directories
mkdir -p videos cot_coarse results
# Get video filename and extension
VIDEO_FILE=$(basename "$VIDEO_PATH")
VIDEO_EXT="${VIDEO_FILE##*.}"
VIDEO_ID="${VIDEO_FILE%.*}"
TEMP_VIDEO_PATH="videos/${VIDEO_ID}_${UNIQUE_ID}.mp4"
# Convert video to MP4 format if needed
if [ "${VIDEO_EXT,,}" != "mp4" ]; then
echo "β³ Converting video to MP4 format..."
ffmpeg -y -i "$VIDEO_PATH" -c:v libx264 -preset fast -c:a aac -strict experimental "$TEMP_VIDEO_PATH" >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo "β Video conversion failed"
exit 2
fi
else
cp "$VIDEO_PATH" "$TEMP_VIDEO_PATH"
fi
# Calculate video duration
DURATION=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$TEMP_VIDEO_PATH")
DURATION_SEC=${DURATION%.*}
echo "Duration is: $DURATION_SEC"
# Create cot.csv file
CAPTION_COT=$(echo "$DESCRIPTION" | tr '"' "'")
CSV_PATH="cot_coarse/cot.csv"
echo "id,caption,caption_cot" > "$CSV_PATH"
echo "${VIDEO_ID}_${UNIQUE_ID},$TITLE,\"$CAPTION_COT\"" >> "$CSV_PATH"
# Run feature extraction
echo "β³ Extracting features..."
python extract_latents.py --duration_sec "$DURATION_SEC" 2>&1
if [ $? -ne 0 ]; then
echo "β Feature extraction failed"
rm -f "$TEMP_VIDEO_PATH"
exit 3
fi
# Run inference
echo "β³ Running model inference..."
bash scripts/infer.sh --duration-sec "$DURATION_SEC" 2>&1
if [ $? -ne 0 ]; then
echo "β Inference failed"
rm -f "$TEMP_VIDEO_PATH"
exit 4
fi
# Get generated audio file
CURRENT_DATE=$(date +"%m%d")
AUDIO_PATH="results/${CURRENT_DATE}_batch_size1/demo.wav"
# Check if audio file exists
if [ ! -f "$AUDIO_PATH" ]; then
echo "β Generated audio file not found"
rm -f "$TEMP_VIDEO_PATH"
exit 5
fi
# Clean up temporary video file
rm -f "$TEMP_VIDEO_PATH"
echo "β
Audio generated successfully!"
echo "Audio file path: $AUDIO_PATH" |