Skip to content

Commit

Permalink
Merge pull request #10524 from marmelab/CI/check_videod_chromasubsamp…
Browse files Browse the repository at this point in the history
…ling

Check videos "Chroma Subsampling" on CI check and explain how to fix a bad encoding
  • Loading branch information
slax57 authored Feb 21, 2025
2 parents f9a814e + 28ab7a8 commit e547f7f
Show file tree
Hide file tree
Showing 14 changed files with 42 additions and 9 deletions.
Binary file modified docs/img/FilterLiveForm.mp4
Binary file not shown.
Binary file modified docs/img/autocomplete-input-with-create.mp4
Binary file not shown.
Binary file modified docs/img/autocomplete-input-with-create.webm
Binary file not shown.
Binary file modified docs/img/prev-next-buttons-edit.mp4
Binary file not shown.
Binary file modified docs/img/prev-next-buttons-edit.webm
Binary file not shown.
Binary file modified docs/img/prev-next-buttons-show.mp4
Binary file not shown.
Binary file modified docs/img/prev-next-buttons-show.webm
Binary file not shown.
Binary file modified docs/img/prev-next-buttons.mp4
Binary file not shown.
Binary file modified docs/img/prev-next-buttons.webm
Binary file not shown.
Binary file modified docs/img/translatable-fields-basic.mp4
Binary file not shown.
Binary file modified docs/img/translatable-fields-basic.webm
Binary file not shown.
Binary file modified docs/img/translatable-fields-with-custom-selector.mp4
Binary file not shown.
Binary file modified docs/img/translatable-fields-with-custom-selector.webm
Binary file not shown.
51 changes: 42 additions & 9 deletions scripts/check-documentation-videos-format.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,46 @@
for file in ./docs/img/**; do
codec=$(mediainfo --Inform="Video;%CodecID%" "$file")
checkCodecId() {
codec=$(mediainfo --Inform="Video;%CodecID%" "$1")

if [ "$codec" = "hvc1" ]; then
# Construct the output file name
output_file="${file%.*}_avc1.${file##*.}"
echo "Invalid codec for $file"
output_file="${1%.*}_avc1.${1##*.}"
echo "Invalid codec for $1"
echo "Convert it to avc1 with:"
echo "ffmpeg -i $file -c:v libx264 -c:a copy ${output_file}"
echo "rm $file"
echo "mv $output_file $file"
exit 1;
echo "ffmpeg -i $1 -c:v libx264 -c:a copy ${output_file}"
echo "rm $1"
echo "mv $output_file $1"
exit 1
fi

}

checkChromaSubsampling() {
imageencode=$(mediainfo --Inform="Video;%ChromaSubsampling%" "$1")

if [ "$imageencode" = "4:4:4" ]; then
# Construct the output file name
output_file="${1%.*}_420.${1##*.}"
echo "\nInvalid ChromaSubsampling for $1"

echo "\nConvert it to yuv420p with:"
case $2 in
"mp4") echo "ffmpeg -i ${1} -c:v libx264 -pix_fmt yuv420p -c:a copy ${output_file}" ;;
"webm") echo "ffmpeg -i ${1} -c:v libvpx-vp9 -pix_fmt yuv420p -c:a libopus -b:a 128k ${output_file}" ;;
esac

echo "\nThen replace the file with:"
echo "rm $1 && mv $output_file $1\n"
exit 1
fi
done

}

for file in ./docs/img/**; do
checkCodecId $file

case "$file" in
*.mp4) checkChromaSubsampling $file "mp4" ;;
*.webm) checkChromaSubsampling $file "webm" ;;
esac

done

0 comments on commit e547f7f

Please sign in to comment.