From 510109168cd94b6d73f0486e0904268ef9c667e2 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Mon, 23 Jun 2014 17:34:04 +0200 Subject: Separate post-processing script. --- localvideodump | 20 +++++++------------- localvideopostprocess | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 13 deletions(-) create mode 100755 localvideopostprocess diff --git a/localvideodump b/localvideodump index 49546fa..6a2e33c 100755 --- a/localvideodump +++ b/localvideodump @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright © 2012, 2013 Jonas Smedegaard +# Copyright © 2012-2014 Jonas Smedegaard # Description: record most possible video data using least CPU # # This program is free software; you can redistribute it and/or modify @@ -28,9 +28,7 @@ set -e -#melt cam_Microsoft_LifeCam_Studio.mlt -consumer avformat:x.avi vcodec=ffv1 an=1 - -output="${1:-dump.mkv}" +output="${1:-dump.nut}" # resolve audio inputs: default PCM of all ALSA cards with input devices ainputs="$(arecord -l | perl -anE '/^card/ and say $F[2]')" @@ -50,17 +48,13 @@ inrate=20 #inrate=10 outrate=$inrate # seems this ensures fixed rate when input is flaky +vcodec=copy # uncompressed #vcodec=huffyuv # more common -vcodec=ffvhuff # more compact, supports YV12 colorspace +#vcodec=ffvhuff # more compact, supports YV12 colorspace #vcodec=ffv1 # most compact, supports RGBA colorspace, too CPU-hungry -acodec=pcm_s16le - -vf="${vf:+$vf }-vf setpts=(RTCTIME-RTCSTART)/(TB*1000000)" # current time -vf="${vf:+$vf }-vf hqdn3d" # high-quality denoise (good for webcams) -font='/usr/share/fonts/truetype/droid/DroidSans.ttf' -#vf="${vf:+$vf }-vf "drawtext=fontfile=$font: timecode='09\:57\:00\:00': r=25: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1"}" -#vf="${vf:+$vf }-vf "drawtext=fontfile=DroidSans.ttf:'timecode=09\:57\:00\:00':r=25:x=\(w-tw\)/2:y=h-\(2*lh\):fontcolor=white:box=1:boxcolor=0x00000000@1"}" +acodec=copy +#acodec=pcm_s16le parse_v4l2_formats() { v4l2-ctl --list-formats-ext -d "$1" | perl -n \ @@ -112,7 +106,7 @@ FORMATS vmaps="${vmaps:+$vmaps }-map $i:v:0" i=$(expr $i + 1) done -voutargs=${vinputs:+-c:v $vcodec $vf ${outrate:+-r $outrate}} +voutargs=${vinputs:+-c:v $vcodec ${outrate:+-r $outrate}} aoutargs=${ainputs:+-c:a $acodec} echo avconv $ainargs $vinargs $vmaps $amaps $voutargs $aoutargs -y "$output" diff --git a/localvideopostprocess b/localvideopostprocess new file mode 100755 index 0000000..9a65425 --- /dev/null +++ b/localvideopostprocess @@ -0,0 +1,49 @@ +#!/bin/sh +# Copyright © 2012-2014 Jonas Smedegaard +# Description: post-process fast-recorded multitrack video +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Depends: libav-tools +# +# TODO: add --help option +# TODO: make codecs, rates etc. configurable +# TODO: include SMTPE channel +# TODO: Check and ask if outfile already exist +# TODO: Add --force option to skip asking for overwriting + +set -e + +input="${1:-dump.nut}" +output="${2:-dump.mkv}" + +#vcodec=huffyuv # more common +#vcodec=ffvhuff # more compact, supports YV12 colorspace +vcodec=ffv1 # most compact, supports RGBA colorspace, too CPU-hungry + +acodec=pcm_s16le + +#vf="${vf:+$vf }-vf setpts=(RTCTIME-RTCSTART)/(TB*1000000)" # current time +vf="${vf:+$vf }-vf hqdn3d" # high-quality denoise (good for webcams) +#font='/usr/share/fonts/truetype/droid/DroidSans.ttf' +#vf="${vf:+$vf }-vf "drawtext=fontfile=$font: timecode='09\:57\:00\:00': r=25: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1"}" +#vf="${vf:+$vf }-vf "drawtext=fontfile=DroidSans.ttf:'timecode=09\:57\:00\:00':r=25:x=\(w-tw\)/2:y=h-\(2*lh\):fontcolor=white:box=1:boxcolor=0x00000000@1"}" + +inargs="-i file:$input" +maps="-map 0" +voutargs="-c:v $vcodec $vf ${outrate:+-r $outrate}" +aoutargs="-c:a $acodec" + +echo avconv -threads auto $inargs $maps $voutargs $aoutargs -y "$output" +exec avconv -threads auto $inargs $maps $voutargs $aoutargs -y "$output" -- cgit v1.2.3