Advertisement
Guest User

Untitled

a guest
Jan 17th, 2015
399
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.18 KB | None | 0 0
  1. #!/bin/bash
  2. #параметры, вынесенные сначала, которые наверняка придётся когда-нибудь менять
  3. OUTPUT="output_$(date +%s).webm" #как будем сохранять результат
  4. MXS=12400 #максимальный размер выходного файла в килобайтах
  5. AB=64 #битрейт аудио kbit/s
  6. FPARAM='-y -loglevel warning' #дополнительные глобальные параметры ffmpeg
  7. #временные файлы
  8. TMPA=./.temp_audio.ogg #имя и путь до аудиодорожки
  9. TMPV=./.temp_video.webm #имя и путь до видеопотока
  10. ###
  11. echo "Введите путь до исходного файла"
  12. read INPUTH
  13. until [[ -r $INPUTH ]]; do
  14.   echo "Неверный путь. Введите путь до исходного файла."
  15.   read INPUTH
  16. done
  17. echo "Введите начало отрезка в формате мин:сек"
  18. read STRT
  19. echo "Введите продолжительность фрагмента в секундах."
  20. read TIME
  21. echo "Введите путь до субтитров или нажмите ENTER, чтобы пропустить."
  22. read SUBS
  23. echo "Чтобы не добавлять аудиодорожку, впечатайте "N""
  24. read AITEM
  25. # теперь примерно посчитаем битрейт видео, математика уровня /b/
  26. let GB=$MXS/$TIME
  27. let VB=$[$GB*8]-$[$AB*0,9]
  28. VCPARAM=" -c:v libvpx-vp9 -b:v ${VB}k -lag-in-frames 16 " #параметры видеокодека
  29. #кодирум с субтитрами или без них
  30. if [[ ! -r $SUBS ]]; then
  31.   echo "Субтитры не указаны или указаны неверно. Продолжаем без них."
  32.   echo "Кодируем видео. Первый проход..."
  33.   ffmpeg $FPARAM -ss $STRT -i "$INPUTH" -t $TIME  -an -sn $VCPARAM -pass 1 "$TMPV"&&
  34.   echo "Кодируем видео. Второй проход..."&&
  35.   ffmpeg $FPARAM -ss $STRT -i "$INPUTH" -t $TIME  -an -sn $VCPARAM -auto-alt-ref 1 -quality good -pass 2 "$TMPV"
  36. else
  37.   echo "Субтитры будут добавлены."
  38.   echo "Кодируем видео. Первый проход..."
  39.   ffmpeg $FPARAM -i "$INPUTH" -ss $STRT -t $TIME -an -vf subtitles="$SUBS" $VCPARAM -pass 1 "$TMPV"&&
  40.   echo "Кодируем видео. Второй проход..."&&
  41.   ffmpeg $FPARAM -i "$INPUTH" -ss $STRT -t $TIME -an -vf subtitles="$SUBS" $VCPARAM -auto-alt-ref 1 -quality good -pass 2 "$TMPV"
  42. fi
  43. #кодируем аудиодорожку и муксим файлы, или не делаем этого
  44. case "$AITEM" in
  45.   N|n)  echo "Аудиодорожка добавлена не будет."
  46.     mv "$TMPV" "$OUTPUT";;
  47.   *)    echo "Кодируем звук..."
  48.     ffmpeg $FPARAM -ss $STRT -i "$INPUTH" -t $TIME -vn -sn -c:a libopus -ac 2 -b:a ${AB}k -vbr on "$TMPA"&&
  49.     echo "Склеиваем звук и видео..."&&
  50.     ffmpeg $FPARAM -i "$TMPV" -i "$TMPA" -c copy "$OUTPUT"&&
  51.     echo "Удаляем временные файлы..."
  52.     rm "$TMPA"
  53.     rm "$TMPV"
  54. esac
  55. rm ./ffmpeg2pass-0.log
  56. echo "готово: "$(ls -d -s -h "$OUTPUT")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement