2012-12-30, 21:10
Current version is 0.93i.
I've just put comskip 0.91 (now 0.93) for Linux online. I'm in the process of converting it over to fully object oriented C++11. I plan to complete the conversion to C++11 by the 1.00 release.
0.93i is more tolerant to damaged input files.
0.93h eliminates warnings when building with ffmpeg 2.2+.
0.93g fixes segfault when no video codec is found (damaged video file).
0.93f changes deprecated parameters for ffmpeg 2.1+.
0.93e fixes an error in floating point audio handling.
This version also works with the recently released ffmpeg 2.0.
0.93c fixed a minor warning with gcc 4.8.1+.
0.93b works with s16p audio input.
0.93a should fix a segfault when using live_tv=1.
0.93 removes the MAXWIDTH and MAXHEIGHT restrictions. It is now more memory efficient when processing video that is less than 1920x1080.
0.92r is a quick fix for some bounds errors that some users have experienced.
0.92q replaces some questionable macros with c++ template code which make debugging easier. Even more bounds checking enabled which is enabled by default.
0.92p fixes a potential indexing error and adds a bit more bounds checking.
0.92o fixes memory leaks and also fixes variable framerate encoded video processing.
0.92k reduces the runtime memory requirement.
0.92g fixes the mkv_time_offset, it was inadvertently being added to the offset when running against .ts. It also fixes an out of range problem that was causing a segfault on armv7 systems. I've now compiled and tested on an armv7 system and am quite satisfied that the results match the x86_64 results.
0.92f works with FFmpeg 1.1+.
0.92d fixes the generation of .csv files. The conversion to C++11 continues...
0.91e fixes a segfault on media files with faulty audio streams.
The 0.91d version adds two new config options in comskip.ini.
edl_mode=0 ; the mode specified in the generated edl file, 0=cut, 3=commercial break
mkv_time_offset=30.0 ; offset in seconds, to work around what appears to be an xbmc or ffmpeg bug
http://www.xilka.com/xilka/source/comskip-0.93i.tar.xz
It requires ffmpeg 0.9 or greater and argtable2.
If your system ffmpeg is 0.9 or greater building is as simple as:
If your system ffmpeg is older than 0.9:
If you system argtable2 doesn't work...
It installs config files in /etc/comskip.
Once installed it's as easy as running "comskip filename.ts" or "comskip filename.mkv". Note that this version does support mkv files which the windows version doesn't.
Here is the post processing script that I use.[/code]
I've just put comskip 0.91 (now 0.93) for Linux online. I'm in the process of converting it over to fully object oriented C++11. I plan to complete the conversion to C++11 by the 1.00 release.
0.93i is more tolerant to damaged input files.
0.93h eliminates warnings when building with ffmpeg 2.2+.
0.93g fixes segfault when no video codec is found (damaged video file).
0.93f changes deprecated parameters for ffmpeg 2.1+.
0.93e fixes an error in floating point audio handling.
This version also works with the recently released ffmpeg 2.0.
0.93c fixed a minor warning with gcc 4.8.1+.
0.93b works with s16p audio input.
0.93a should fix a segfault when using live_tv=1.
0.93 removes the MAXWIDTH and MAXHEIGHT restrictions. It is now more memory efficient when processing video that is less than 1920x1080.
0.92r is a quick fix for some bounds errors that some users have experienced.
0.92q replaces some questionable macros with c++ template code which make debugging easier. Even more bounds checking enabled which is enabled by default.
0.92p fixes a potential indexing error and adds a bit more bounds checking.
0.92o fixes memory leaks and also fixes variable framerate encoded video processing.
0.92k reduces the runtime memory requirement.
0.92g fixes the mkv_time_offset, it was inadvertently being added to the offset when running against .ts. It also fixes an out of range problem that was causing a segfault on armv7 systems. I've now compiled and tested on an armv7 system and am quite satisfied that the results match the x86_64 results.
0.92f works with FFmpeg 1.1+.
0.92d fixes the generation of .csv files. The conversion to C++11 continues...
0.91e fixes a segfault on media files with faulty audio streams.
The 0.91d version adds two new config options in comskip.ini.
edl_mode=0 ; the mode specified in the generated edl file, 0=cut, 3=commercial break
mkv_time_offset=30.0 ; offset in seconds, to work around what appears to be an xbmc or ffmpeg bug
http://www.xilka.com/xilka/source/comskip-0.93i.tar.xz
It requires ffmpeg 0.9 or greater and argtable2.
If your system ffmpeg is 0.9 or greater building is as simple as:
Code:
cd /var/tmp
mkdir ComSkipWork
wget http://www.xilka.com/xilka/source/comskip-0.93i.tar.xz
tar xf comskip-0.93i.tar.xz
cd comskip-0.93i
./configure --prefix=/usr
make -j8
sudo make install
If your system ffmpeg is older than 0.9:
Code:
cd /var/tmp
mkdir ComSkipWork
wget http://ffmpeg.org/releases/ffmpeg-2.2.tar.bz2
tar xf ffmpeg-2.2.tar.bz2
cd ffmpeg-2.2
./configure --prefix=/var/tmp/ComSkipWork/install
make -j8
make install
cd ..
wget http://www.xilka.com/xilka/source/comskip-0.93i.tar.xz
tar xf comskip-0.93i.tar.xz
cd comskip-0.93i
PKG_CONFIG_PATH=/var/tmp/ComSkipWork/install/lib/pkgconfig ./configure --prefix=/usr
make -j8
sudo make install
If you system argtable2 doesn't work...
Code:
1. download the latest argtable2
2. extract it into it's own subdirectory
3. ./configure --prefix=/var/tmp/ComSkipWork/install
4. make -j8
5. make install
Then to build comskip add /var/tmp/ComSkipWork/install/lib/pkgconfig to the
PKG_CONFIG_PATH just as you would for an static ffmpeg
(man pkg-config for additional info).
It installs config files in /etc/comskip.
Once installed it's as easy as running "comskip filename.ts" or "comskip filename.mkv". Note that this version does support mkv files which the windows version doesn't.
Here is the post processing script that I use.[/code]
Code:
#! /usr/bin/bash
INPUTVIDEO="$1" # Full path to recording, i.e. /home/user/Videos/News.ts
if [[ $1 == *.ts ]]; then
BASENAME=`/usr/bin/basename $INPUTVIDEO .ts`
elif [[ $1 == *.mkv ]]; then
BASENAME=`/usr/bin/basename $INPUTVIDEO .mkv`
else
exit 0
fi
DIRNAME=`/usr/bin/dirname $INPUTVIDEO`
EDLFILE="$DIRNAME/$BASENAME.edl"
LOGFILE="$DIRNAME/$BASENAME.log"
TXTFILE="$DIRNAME/$BASENAME.txt"
LOGOFILE="$DIRNAME/$BASENAME.logo.txt"
COMSKIPPATH="/home/hts/comskip/comskip.exe"
COMSKIPLOGS="/home/hts/comskip/logs/"
# not using these in the script yet, if ever
if false; then
c=$3 #Channel name BBC world
C=$4 #Who created this recording user
t=$5 #Program title News
d=$6 #Program description News and stories...
S=$7 #Start time stamp of recording, UNIX epoch 1224421200
E=$8 #Stop time stamp of recording, UNIX epoch 1224426600
fi
function ClearLog()
{
echo "*****" >/tmp/tvheadendpp$$.log
echo "***** INPUT = $INPUTVIDEO *****" >>/tmp/tvheadendpp$$.log
echo "*****" >>/tmp/tvheadendpp$$.log
}
function FlagCommercials()
{
chmod 644 $INPUTVIDEO
echo "Starting Commercial Flagging" >>/tmp/tvheadendpp$$.log
echo "*****" >>/tmp/tvheadendpp$$.log
echo "***** OUTPUT = "$EDLFILE" *****" >>/tmp/tvheadendpp$$.log
echo "*****" >>/tmp/tvheadendpp$$.log
/usr/bin/whoami >>/tmp/tvheadendpp$$.log # for debugging purposes, who is running this script?
/usr/bin/date >>/tmp/tvheadendpp$$.log
echo "*****" >>/tmp/tvheadendpp$$.log
echo "*****" >>/tmp/tvheadendpp$$.log
/usr/bin/comskip -t "$INPUTVIDEO" 2>&1 </dev/null >>/tmp/tvheadendpp$$.log
echo "*****" >>/tmp/tvheadendpp$$.log
echo "*****" >>/tmp/tvheadendpp$$.log
[[ ! -f $LOGFILE ]] || /usr/bin/mv "$LOGFILE" $COMSKIPLOGS
[[ ! -f $TXTFILE ]] || /usr/bin/mv "$TXTFILE" $COMSKIPLOGS
[[ ! -f $LOGOFILE ]] || /usr/bin/mv "$LOGOFILE" $COMSKIPLOGS
echo "EDL for $INPUTVIDEO:" >>/tmp/tvheadendpp$$.log
}
ClearLog
FlagCommercials
echo "Finished at `/usr/bin/date`" >>/tmp/tvheadendpp$$.log