Tour-360 / pano-tools

Tools for create panoramas
3 stars 4 forks source link

Добавить возможность создавать видео 360 для ютуба #8

Open Borodin opened 5 years ago

Borodin commented 5 years ago
clear
echo "[   0%] Копирование исходных изображений"
cp -r ./img ./output

echo "[ 0.5%] Преобразования размера панорам"
# mogrify -resize 2048x1024 -quality 100 output/*.jpg
mogrify -resize 4096x2048 -quality 100 output/*.jpg
# mogrify -resize 8192x4096 -quality 100 output/*.jpg

echo "[  28%] Создание списка фалов"
for entry in "output"/*.jpg
do
  echo "file '$entry'" >> list.txt
done

echo "[  29%] Подсчет количества файлов"
files=$(find output/*.jpg -type f | wc -l)
frameduration=5

echo "[  30%] Сборка видео из $(($files*1)) панорам"
ffmpeg -f concat -r 1/$frameduration -i list.txt -crf 20 -r 30 -c:v libx264 -preset slow -profile:v high -bf 2 -g 30 -coder 1 -crf 18 -pix_fmt yuv420p -movflags +faststart 360.mp4 -y -loglevel warning
audiostart=1
audioduration=$((frameduration*files+startaudio))
echo "[  98%] Обрезка музыкаи"
ffmpeg -ss $audiostart -t $audioduration -i src/audio.mp3 clip.mp3 -y -loglevel warning 
echo "[99.7%] Совмещение музыки и видео"
ffmpeg -i 360.mp4 -i clip.mp3 -c:v copy -c:a aac -b:a 512k youtube.mp4 -y -loglevel warning
echo "[99.8%] Добавление методанных"
exiftool -xmp:Spherical=true -xmp:UsePanoramaViewer=true -xmp:ProjectionType=equirectangular -xmp:Stitched=true  -xmp:StitchingSoftware="Spherical Metadata Tool" -overwrite_original youtube.mp4 &> /dev/null
python spatialmedia -i youtube.mp4 youtube_360.mp4 &> /dev/null

echo "[99.9%] Создание превью"
first=$(ls img/ | sort -n | head -1)
convert "img/$first" -resize 1280x720! pv.jpg
convert pv.jpg src/preview.png -compose Overlay -composite src/preview.png -compose Over -composite preview.jpg
rm pv.jpg

echo "[99.9%] Подготовка архива"
rm -rf video &> /dev/null
mkdir video 
mv youtube_360.mp4 video/youtube_360.mp4
mv preview.jpg video/preview.jpg
cp src/tags.txt video/tags.txt
zip -r video.zip video &> /dev/null

echo "[99.9%] Удаление временных файлов"
rm list.txt
rm 360.mp4
rm clip.mp3
rm youtube.mp4
rm -rf output/
echo "[ 100%] Готово youtube_360.mp4"