diff options
author | Jonas Smedegaard <dr@jones.dk> | 2010-09-02 14:06:01 +0200 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2010-09-02 14:06:01 +0200 |
commit | aa95dd51dc1ca1f3bbada79053c886e092ca8488 (patch) | |
tree | 6bc92139e4be6f1e3cf28f8d7230dedc9f555251 | |
parent | 8c6cf58bb66792e095e7275936aaa7d70b512073 (diff) |
Add new script localvideowebencode.
-rwxr-xr-x | localvideowebencode | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/localvideowebencode b/localvideowebencode new file mode 100755 index 0000000..65b8384 --- /dev/null +++ b/localvideowebencode @@ -0,0 +1,41 @@ +#!/bin/sh + +# Origin: http://diveintohtml5.org/video.html +# See also: http://camendesign.com/code/video_for_everybody + +set -e + +# input filename (mandatory) +infile="$1"; shift +filebase=$(echo "$infile" | perl -pe 's/\.[^.]*//') + +# output size in WIDTHxHEIGHT (optional, default: 320x200) +size=${1:-320x200} +width=$(echo "$size" | perl -pe 's/[^x]*x//') +height=$(echo "$size" | perl -pe 's/x[^x]*//') + +## Theora/Vorbis/Ogg +ffmpeg2theora --videobitrate 200 --max_size "$size" --output "$filebase.ogv" "$infile" + +## H.264/AAC/MP4 +#HandBrakeCLI --preset "iPhone & iPod Touch" --vb 200 ${width:+--width "$width"} --two-pass --turbo --optimize --input "$infile" --output "$filebase.mp4" +HandBrakeCLI --preset "iPhone & iPod Touch" --vb 200 ${width:+--maxWidth "$width"} ${height:+--maxHeight "$height"} --two-pass --turbo --optimize --input "$infile" --output "$filebase.mp4" + +## VP8/Vorbis/WebM +ffmpeg -pass 1 -passlogfile "$infile" -threads 16 -keyint_min 0 -g 250 -skip_threshold 0 -qmin 1 -qmax 51 -i "$infile" -vcodec libvpx -b 204800 -s "$size" -aspect 4:3 -an -f webm -y NUL +ffmpeg -pass 2 -passlogfile "$infile" -threads 16 -keyint_min 0 -g 250 -skip_threshold 0 -qmin 1 -qmax 51 -i "$infile" -vcodec libvpx -b 204800 -s "$size" -aspect 4:3 -acodec libvorbis -ac 2 -y "$filebase.webm" + +cat >"$filebase.html" <<EOF +<video id="movie" width="$width" height="$height" preload controls> + <source src="$filebase.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' /> + <source src="$filebase.webm" type='video/webm; codecs="vp8, vorbis"' /> + <source src="$filebase.ogv" type='video/ogg; codecs="theora, vorbis"' /> + <object width="$width" height="$height" type="application/x-shockwave-flash" + data="flowplayer-3.2.1.swf"> + <param name="movie" value="flowplayer-3.2.1.swf" /> + <param name="allowfullscreen" value="true" /> + <param name="flashvars" value='config={"clip": {"url": "http://wearehugh.com/dih5/good/bbb_480p.mp4", "autoPlay":false, "autoBuffering":true}}' /> + <p>Download video as <a href="$filebase.mp4">MP4</a>, <a href="$filebase.webm">WebM</a>, or <a href="$filebase.ogv">Ogg</a>.</p> + </object> +</video> +EOF |