mirror of
https://github.com/MeexReay/Youtube2Maker.git
synced 2025-05-05 23:58:02 +03:00
some fixes
This commit is contained in:
parent
27d7ef6d55
commit
ddce86afaf
18
README.md
18
README.md
@ -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
|
||||
./convert-to-av1.sh
|
||||
```
|
||||
|
||||
Учтите что формат видео `.av1` поддерживается не везде!
|
||||
Он переконвернирует все видео в папке `videos/`
|
||||
|
||||
Этот вариант лучше сжимает видео без потери качества, но минус в том что формат может не везде поддерживаться
|
17
compress-videos.sh
Normal file
17
compress-videos.sh
Normal 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
|
@ -3,7 +3,19 @@
|
||||
for video_file in videos/*.mp4; do
|
||||
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
|
||||
echo "Skipping $video_file as it already AV1 encoded"
|
||||
continue
|
||||
fi
|
||||
|
||||
mv "videos/$base_name.av1.mp4" "$video_file"
|
||||
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
|
@ -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
|
||||
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")
|
||||
DESCRIPTION=$(jq -r '.description' "videos/${VIDEO_ID}.info.json")
|
||||
CHANNEL_NAME=$(jq -r '.uploader' "videos/${VIDEO_ID}.info.json")
|
||||
|
Loading…
Reference in New Issue
Block a user