Size: 565
Comment:
|
Size: 2486
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
== Rotate == If the camera was recording in "upside down" mode: {{{#!highlight sh numbers=off parallel -u 'echo {}; jpegtran -rotate 180 -perfect -copy all -outfile {}.tran {} && mv {}.tran {}' ::: *.jpg }}} == Resize & crop == |
|
Line 2: | Line 12: |
parallel -u 'echo {}; jpegtran -rotate 180 -perfect -copy all -outfile {}.tran {} && mv {}.tran {}' ::: *.jpg | # Crop top find . -name '*JPG' -print0 | xargs -0 -P$(nproc) -n256 gm mogrify -chop 0x486 -resize 1920x1080 # or Crop bottom find . -name '*JPG' -print0 | xargs -0 -P$(nproc) -n256 gm mogrify -gravity South -chop 0x486 -resize 1920x1080 }}} |
Line 4: | Line 18: |
For the GoPro HD Hero 2: {{{#!highlight sh |
|
Line 5: | Line 22: |
find . -name '*JPG' -print0 | xargs -0 -P2 -n8 mogrify -crop 2592x1944+0+486 -resize 1920x1080 | find . -name '*JPG' -print0 | xargs -0 -P$(nproc) -n256 mogrify -crop 3840x2880+0+720 -resize 1920x1080 }}} |
Line 7: | Line 25: |
# LDR tonemapping parallel -u 'echo {}; ~/sys/tonemap/tonemapping ~/sys/tonemap/default.tnp {} {}.tonemapped && mv {}.tonemapped {}' ::: *.JPG |
For the Xiaomi Yi: |
Line 10: | Line 27: |
mencoder mf://*.JPG -mf fps=15:type=jpg -ovc lavc -oac lavc -of lavf -lavfopts format=webm -lavcopts threads=4:acodec=vorbis:vcodec=libvpx -ffourcc VP80 -o output15.webm | {{{#!highlight sh # 16 MP # Crop top find . -name '*jpg' -print0 | xargs -0 -P$(nproc) -n256 gm mogrify -chop 0x864 -resize 1920x1080 # Crop top at 4K find . -name '*jpg' -print0 | xargs -0 -P$(nproc) -n256 gm mogrify -chop 0x864 -resize 3840x2160 |
Line 12: | Line 34: |
== LDR tone mapping == {{{#!highlight sh numbers=off parallel -u 'echo {}; ~/sys/tonemap/tonemapping ~/sys/tonemap/default.tnp {} {}.tonemapped && mv {}.tonemapped {}' ::: *.jpg }}} batch: {{{ for i in $(ls); do (cd $i; parallel -u 'echo {}; ~/sys/tonemap/tonemapping ~/sys/tonemap/default.tnp {} {}.tonemapped && mv {}.tonemapped {}' ::: *.jpg); done; }}} == Encode to WebM == {{{#!highlight sh numbers=off # Old mencoder line mencoder mf://*.JPG -mf fps=15:type=jpg -ovc lavc -oac lavc -of lavf -lavfopts format=webm -lavcopts threads=4:acodec=vorbis:vcodec=libvpx -ffourcc VP80 -o $(basename $(pwd)).webm # New MPV line, for VP9 # qmax appears to set video quality… lower number (e.g. qmax=25) is better quality, higher number (default is qmax=63) is less quality mpv mf://*.jpg -mf-fps=15 -mf-type=jpeg --ovc=libvpx-vp9 -ovcopts qmax=30 -o $(basename $(pwd)).vp9.webm # MPV for x264 mpv mf://*.jpg -mf-fps=15 -mf-type=jpeg --ovc=libx264 -o $(basename $(pwd)).mp4 # MPV for lossless x264 mpv mf://*.jpg -mf-fps=15 -mf-type=jpeg --ovc=libx264 --ovcopts preset=veryslow,qp=0 -o $(basename $(pwd)).lossless.mp4 }}} batch: {{{ # use one of the commands from above COMMAND="" for i in $(ls); do (echo cd $i; echo $COMMAND; echo cd ../); done }}} == Merge WebM files == After placing all the WebM files in one directory, merge with: {{{#!highlight sh numbers=off f() { args=("$1"); shift; args+=("${@/#/+ }"); echo "${args[@]}"; }; echo mkvmerge $(f $(ls *webm)) }}} |
Rotate
If the camera was recording in "upside down" mode:
parallel -u 'echo {}; jpegtran -rotate 180 -perfect -copy all -outfile {}.tran {} && mv {}.tran {}' ::: *.jpg
Resize & crop
For the GoPro HD Hero 2:
For the Xiaomi Yi:
LDR tone mapping
parallel -u 'echo {}; ~/sys/tonemap/tonemapping ~/sys/tonemap/default.tnp {} {}.tonemapped && mv {}.tonemapped {}' ::: *.jpg
batch:
for i in $(ls); do (cd $i; parallel -u 'echo {}; ~/sys/tonemap/tonemapping ~/sys/tonemap/default.tnp {} {}.tonemapped && mv {}.tonemapped {}' ::: *.jpg); done;
Encode to WebM
# Old mencoder line
mencoder mf://*.JPG -mf fps=15:type=jpg -ovc lavc -oac lavc -of lavf -lavfopts format=webm -lavcopts threads=4:acodec=vorbis:vcodec=libvpx -ffourcc VP80 -o $(basename $(pwd)).webm
# New MPV line, for VP9
# qmax appears to set video quality… lower number (e.g. qmax=25) is better quality, higher number (default is qmax=63) is less quality
mpv mf://*.jpg -mf-fps=15 -mf-type=jpeg --ovc=libvpx-vp9 -ovcopts qmax=30 -o $(basename $(pwd)).vp9.webm
# MPV for x264
mpv mf://*.jpg -mf-fps=15 -mf-type=jpeg --ovc=libx264 -o $(basename $(pwd)).mp4
# MPV for lossless x264
mpv mf://*.jpg -mf-fps=15 -mf-type=jpeg --ovc=libx264 --ovcopts preset=veryslow,qp=0 -o $(basename $(pwd)).lossless.mp4
batch:
# use one of the commands from above COMMAND="" for i in $(ls); do (echo cd $i; echo $COMMAND; echo cd ../); done
Merge WebM files
After placing all the WebM files in one directory, merge with:
f() { args=("$1"); shift; args+=("${@/#/+ }"); echo "${args[@]}"; }; echo mkvmerge $(f $(ls *webm))