some fixes

This commit is contained in:
MeexReay 2025-04-24 23:24:26 +03:00
parent 27d7ef6d55
commit ddce86afaf
4 changed files with 55 additions and 6 deletions

View File

@ -53,12 +53,24 @@ sudo dd if=build/youtube2.iso of=/dev/sdX bs=4M status=progress
## Сжатие видео ## Сжатие видео
Для сжатия всех видео в `.av1` формат, используйте эту ffmpeg команду (если у вас изначальный формат не `.mp4` то замените) ### Сжатие до Full HD
Используйте скрипт `convert-to-av1.sh`: Используйте скрипт `compress-videos.sh` для сжатия до Full HD:
```bash
./compress-videos.sh
```
Он сожмет все видео в папке `videos/`
### Конвертация в AV1
Используйте скрипт `convert-to-av1.sh` для сжатия в `AV1`:
```bash ```bash
./convert-to-av1.sh ./convert-to-av1.sh
``` ```
Учтите что формат видео `.av1` поддерживается не везде! Он переконвернирует все видео в папке `videos/`
Этот вариант лучше сжимает видео без потери качества, но минус в том что формат может не везде поддерживаться

17
compress-videos.sh Normal file
View File

@ -0,0 +1,17 @@
#!/bin/bash
for video_file in videos/*.mp4; do
base_name=$(basename "$video_file" .mp4)
ffmpeg -i "$video_file" \
-vf "scale='min(1920,iw)':'min(1080,ih)':force_original_aspect_ratio=decrease" \
-c:v libx264 -preset slow -crf 23 \
-c:a copy \
"videos/${base_name}.compressed.mp4" || exit 1
for json_file in videos/*.json; do
sed -i "s/$base_name.mp4/$base_name.compressed.mp4/g" "$json_file"
done
rm videos/$base_name.mp4
done

View File

@ -3,7 +3,19 @@
for video_file in videos/*.mp4; do for video_file in videos/*.mp4; do
base_name=$(basename "$video_file" .mp4) base_name=$(basename "$video_file" .mp4)
ffmpeg -i "$video_file" -c:v libaom-av1 -crf 23 -b:v 0 -cpu-used 4 -g 240 -strict -2 "videos/$base_name.av1.mp4" || exit 1 codec_check=$(ffmpeg -i "$video_file" 2>&1 | grep -o 'Video: av1')
if [[ -n "$codec_check" ]]; then
mv "videos/$base_name.av1.mp4" "$video_file" echo "Skipping $video_file as it already AV1 encoded"
continue
fi
echo "Converting videos/$base_name.mp4 to videos/$base_name.av1.mp4"
ffmpeg -i "videos/$base_name.mp4" -c:v libsvtav1 -crf 23 -b:v 0 -cpu-used 4 -g 240 -strict -2 "videos/$base_name.av1.mp4" || exit 1
for json_file in videos/*.json; do
sed -i "s/$base_name.mp4/$base_name.av1.mp4/g" "$json_file"
done
rm videos/$base_name.mp4
done done

View File

@ -19,6 +19,14 @@ PREVIEW_FILENAME=$(find videos -type f -iname "${VIDEO_ID}_preview*")
yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" -o "videos/${VIDEO_ID}_video" "$VIDEO_URL" $ADDITIONAL_ARGS yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" -o "videos/${VIDEO_ID}_video" "$VIDEO_URL" $ADDITIONAL_ARGS
VIDEO_FILENAME=$(find videos -type f -iname "${VIDEO_ID}_video*") VIDEO_FILENAME=$(find videos -type f -iname "${VIDEO_ID}_video*")
# ffmpeg -i "$VIDEO_FILENAME" \
# -vf "scale='min(1920,iw)':'min(1080,ih)':force_original_aspect_ratio=decrease" \
# -c:v libx264 -preset slow -crf 23 \
# -c:a copy \
# "videos/${VIDEO_ID}_video_compressed.mp4"
# mv "videos/${VIDEO_ID}_video_compressed.mp4" "$VIDEO_FILENAME"
NAME=$(jq -r '.fulltitle' "videos/${VIDEO_ID}.info.json") NAME=$(jq -r '.fulltitle' "videos/${VIDEO_ID}.info.json")
DESCRIPTION=$(jq -r '.description' "videos/${VIDEO_ID}.info.json") DESCRIPTION=$(jq -r '.description' "videos/${VIDEO_ID}.info.json")
CHANNEL_NAME=$(jq -r '.uploader' "videos/${VIDEO_ID}.info.json") CHANNEL_NAME=$(jq -r '.uploader' "videos/${VIDEO_ID}.info.json")