Created
December 30, 2022 18:31
-
-
Save dclobato/39e2d1ab7798f2e071da5072bfdf27c5 to your computer and use it in GitHub Desktop.
Script para converter, originalmente, o arquivos .MOV do iPhone para arquivos MP4 usando ffmpeg acelerado com CUDA e preservando as tags originais. No final, renomeia o arquivo para o formato `data-make-model.mp4`
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
read -p "Qual extensao converter? " extensao | |
read -p "Arquivo com o resultado das conversoes? " saida | |
echo Trabalhando nos arquivos *.$extensao | |
echo `date` > $saida | |
find ./ -type f -iname "*.${extensao}" | while IFS= read -r video; do | |
echo "- Processando video ${video}" | |
ffmpeg -hide_banner -loglevel error -nostdin -hwaccel cuda -hwaccel_output_format cuda -i "${video}" -movflags use_metadata_tags -c:v hevc_nvenc -c:a aac -y "${video%.*}".mp4 | |
if [ $? -eq 0 ]; then | |
echo " Conversao com sucesso, entao copiando tags..." | |
exiftool -ee -tagsfromfile "${video}" -overwrite_original "${video%.*}".mp4 > /dev/null | |
if [ $? -eq 0 ]; then | |
if exiftool -if '!$make or !$model' -dummy "${video%.*}.mp4" > /dev/null; then | |
echo " !! O arquivo nao tem as tags necessarias para identificar a camera. Renomeie de forma manual" | |
continue | |
fi | |
if exiftool -if '$mediacreatedate' "${video%.*}".mp4 > /dev/null; then | |
exiftool '-fileName<${MediaCreateDate}_${make;tr/ /_/;tr/\//-/;s/__+/_/g}-${model;tr/ /_/;tr/\//-/;s/__+/_/g}.mp4' \ | |
'-filemodifydate<MediaCreateDate' '-FileCreateDate<MediaCreateDate' '-ModifyDate<MediaCreateDate' \ | |
-d '%Y%m%dT%H%M%S%%-2c' -overwrite_original -api largefilesupport=1 \ | |
"${video%.*}".mp4 > /dev/null | |
else | |
if exiftool -if '$datetimeoriginal' -dummy "${video%.*}".mp4 > /dev/null; then | |
exiftool '-fileName<${DateTimeOriginal}_${make;tr/ /_/;tr/\//-/;s/__+/_/g}-${model;tr/ /_/;tr/\//-/;s/__+/_/g}.mp4' \ | |
'-filemodifydate<DateTimeOriginal' '-FileCreateDate<DateTimeOriginal' '-ModifyDate<DateTimeOriginal' \ | |
'-mediacreatedate<DateTimeOriginal' \ | |
-d '%Y%m%dT%H%M%S%%-2c' -overwrite_original -api largefilesupport=1 \ | |
"${video%.*}".mp4 > /dev/null | |
else | |
echo " !! Nao temos informacao de data para renomear o arquivo. Renomeie de forma manual" | |
continue | |
fi | |
fi | |
else | |
echo " !! Nao foi possivel copiar as tags do arquivo original. Faca a marcacao de forma manual" | |
continue | |
fi | |
echo " Arquivo convertido com sucesso. Nome do arquivo original armazenado na lista de arquivos" | |
echo "${video}" >> $saida | |
else | |
echo "Falha na conversao. Abortando o laco.." | |
break | |
fi | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment