Created
August 8, 2012 00:58
-
-
Save dericed/3291078 to your computer and use it in GitHub Desktop.
run without any arguments to produce random video files and test lossless encoding with ffv1 version 1 and 3
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 | |
for frame_size in sqcif qcif cif whuxga cga hd720 hd1080 ; do | |
for pixel_format in yuv420p yuva420p yuva422p yuv444p yuva444p yuv440p yuv422p yuv411p yuv410p yuv420p16 yuv422p16 yuv444p16 yuv444p9 yuv422p9 yuv420p9 yuv420p10 yuv422p10 yuv444p10 yuv444p9le yuv422p9le yuv420p9le yuv420p10le yuv422p10le yuv444p10le gray16le gray rgb24 ; do | |
# create 1 seconds of random video data | |
ffmpeg -y -f rawvideo -s "$frame_size" -pix_fmt "$pixel_format" -t 1 -i /dev/random -f rawvideo "random_${pixel_format}_${frame_size}.raw" 2> /dev/null | |
# make framemd5 file of random data | |
ffmpeg -y -f rawvideo -s "$frame_size" -pix_fmt "$pixel_format" -i "random_${pixel_format}_${frame_size}.raw" -f framemd5 "random_${pixel_format}_${frame_size}.md5" 2> /dev/null | |
# encode random data to ffv1 version 1 | |
ffmpeg -y -f rawvideo -s "$frame_size" -pix_fmt "$pixel_format" -i "random_${pixel_format}_${frame_size}.raw" -c:v ffv1 "random_${pixel_format}_${frame_size}_ffv1_v1.mov" 2> /dev/null | |
# encode random data to ffv1 version 3 | |
ffmpeg -y -f rawvideo -s "$frame_size" -pix_fmt "$pixel_format" -i "random_${pixel_format}_${frame_size}.raw" -c:v ffv1 -level 3 -strict experimental "random_${pixel_format}_${frame_size}_ffv1_v3.mov" 2> /dev/null | |
# generate framemd5 from encoded ffv1 version 1 | |
ffmpeg -y -i "random_${pixel_format}_${frame_size}_ffv1_v1.mov" -f framemd5 "random_${pixel_format}_${frame_size}_ffv1_v1.md5" 2> /dev/null | |
# generate framemd5 from encoded ffv1 version 3 | |
ffmpeg -y -i "random_${pixel_format}_${frame_size}_ffv1_v3.mov" -f framemd5 "random_${pixel_format}_${frame_size}_ffv1_v3.md5" 2> /dev/null | |
if [ $(md5 -q "random_${pixel_format}_${frame_size}.md5") == $(md5 -q "random_${pixel_format}_${frame_size}_ffv1_v1.md5") ] ; then | |
echo "random_${pixel_format}_${frame_size}.raw" to "random_${pixel_format}_${frame_size}_ffv1_v1.mov" is lossless | |
else | |
echo "random_${pixel_format}_${frame_size}.raw" to "random_${pixel_format}_${frame_size}_ffv1_v1.mov" is lossy | |
fi | |
if [ $(md5 -q "random_${pixel_format}_${frame_size}.md5") == $(md5 -q "random_${pixel_format}_${frame_size}_ffv1_v3.md5") ] ; then | |
echo "random_${pixel_format}_${frame_size}.raw" to "random_${pixel_format}_${frame_size}_ffv1_v3.mov" is lossless | |
else | |
echo "random_${pixel_format}_${frame_size}.raw" to "random_${pixel_format}_${frame_size}_ffv1_v3.mov" is lossy | |
fi | |
done | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment