mirror of
https://github.com/MeexReay/Youtube2Maker.git
synced 2025-05-06 08:08: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
|
```bash
|
||||||
./convert-to-av1.sh
|
./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
|
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
|
||||||
|
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
|
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
|
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")
|
||||||
|
Loading…
Reference in New Issue
Block a user