59 lines
1.6 KiB
Bash
59 lines
1.6 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# 下载并设置项目专属的 ffmpeg 静态构建版本
|
||
|
|
# 这确保项目使用一致的 ffmpeg 版本,避免环境问题
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
PROJECT_ROOT="/home/ubuntu/projects/FishServer"
|
||
|
|
TOOLS_DIR="$PROJECT_ROOT/tools"
|
||
|
|
FFMPEG_DIR="$TOOLS_DIR/ffmpeg"
|
||
|
|
FFMPEG_VERSION="6.1.1"
|
||
|
|
FFMPEG_ARCH="amd64"
|
||
|
|
|
||
|
|
echo "[setup-ffmpeg] Setting up project-specific ffmpeg..."
|
||
|
|
|
||
|
|
# 创建工具目录
|
||
|
|
mkdir -p "$TOOLS_DIR"
|
||
|
|
|
||
|
|
# 检查是否已存在
|
||
|
|
if [ -f "$FFMPEG_DIR/bin/ffmpeg" ]; then
|
||
|
|
echo "[setup-ffmpeg] ffmpeg already exists at $FFMPEG_DIR/bin/ffmpeg"
|
||
|
|
"$FFMPEG_DIR/bin/ffmpeg" -version | head -1
|
||
|
|
exit 0
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 下载 ffmpeg 静态构建版本
|
||
|
|
echo "[setup-ffmpeg] Downloading ffmpeg $FFMPEG_VERSION..."
|
||
|
|
cd "$TOOLS_DIR"
|
||
|
|
|
||
|
|
# 使用 johnvansickle 的静态构建版本
|
||
|
|
DOWNLOAD_URL="https://johnvansickle.com/ffmpeg/releases/ffmpeg-${FFMPEG_VERSION}-${FFMPEG_ARCH}-static.tar.xz"
|
||
|
|
TAR_FILE="ffmpeg-${FFMPEG_VERSION}-${FFMPEG_ARCH}-static.tar.xz"
|
||
|
|
|
||
|
|
if command -v wget &> /dev/null; then
|
||
|
|
wget -q --show-progress "$DOWNLOAD_URL" -O "$TAR_FILE"
|
||
|
|
elif command -v curl &> /dev/null; then
|
||
|
|
curl -L --progress-bar "$DOWNLOAD_URL" -o "$TAR_FILE"
|
||
|
|
else
|
||
|
|
echo "[setup-ffmpeg] Error: wget or curl is required"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 解压
|
||
|
|
echo "[setup-ffmpeg] Extracting..."
|
||
|
|
tar -xf "$TAR_FILE"
|
||
|
|
|
||
|
|
# 移动到新位置
|
||
|
|
EXTRACTED_DIR=$(tar -tf "$TAR_FILE" | head -1 | cut -f1 -d"/")
|
||
|
|
mv "$EXTRACTED_DIR" "$FFMPEG_DIR"
|
||
|
|
|
||
|
|
# 清理
|
||
|
|
rm "$TAR_FILE"
|
||
|
|
|
||
|
|
# 验证
|
||
|
|
echo "[setup-ffmpeg] Verifying installation..."
|
||
|
|
"$FFMPEG_DIR/bin/ffmpeg" -version | head -1
|
||
|
|
"$FFMPEG_DIR/bin/ffmpeg" -encoders | grep -i "h264\|x264" | head -5
|
||
|
|
|
||
|
|
echo "[setup-ffmpeg] Done! ffmpeg is installed at $FFMPEG_DIR/bin/ffmpeg"
|