• 1
  • 5
  • 6
  • 7(current)
  • 8
  • 9
  • 23
Comskip for Linux released
#91
(2013-01-17, 01:15)cbxbiker61 Wrote:
(2013-01-16, 14:00)schumi2004 Wrote: Update on my attempt to get it compiled for my Synology NAS.
I don't think it's possible to get this running on my NAS because of the missing C++11 support in Synology toolchain.

Code:
checking for inline... inline
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking whether /home/spksrc-schumi2004/toolchains/syno-88f6281/work/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ supports C++11 features by default... no
checking whether /home/spksrc-schumi2004/toolchains/syno-88f6281/work/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ supports C++11 features with -std=gnu++11... no
checking whether /home/spksrc-schumi2004/toolchains/syno-88f6281/work/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-g++ supports C++11 features with -std=gnu++0x... no
configure: error: *** A compiler with support for C++11 language features is required.
make[1]: *** [configure_target] Error 1
make[1]: Leaving directory `/home/spksrc-schumi2004/cross/comskip'
make: [arch-88f6281] Error 2 (ignored)

Edit:
Maybe there is a change getting it compiled for my NAS which is a arm based system.
Is there something specific to know for this script ?
http://www.xilka.com/xilka/source/BuildC...2012.05.sh

I just put up a newer Cross toolchain build script. There are very few system specific things in the script, so it should run pretty much on any Linux system. I can't remember but you may need to change calls from "arch" to "uname -m" on some systems.

http://www.xilka.com/xilka/source/BuildC...2012.12.sh

I copied the necessary patches to http://www.xilka.com/xilka/source/patches. I'm not sure you can list that directory but you can wget them one at a time.

Thanks, will give it a shot later today. Patches folder btw gives me a 502 bad gateway message
Reply
#92
Do you have a copy of arm-2011.03-42-arm-none-eabi.src.tar.bz2 maybe?

Code:
10:08:35 ~/github/comskip$ ./BuildCrossArm-4.7-2012.12.sh armv5tel
task [001/059] /init/dirs
--2013-01-17 22:08:45--  http://www.codesourcery.com/public/gnu_toolchain/armv5tel-xilka-linux-gnueabi/arm-2011.03-42-arm-none-eabi.src.tar.bz2
Resolving www.codesourcery.com... 174.129.20.178
Connecting to www.codesourcery.com|174.129.20.178|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://sourcery.mentor.com/public/gnu_toolchain/armv5tel-xilka-linux-gnueabi/arm-2011.03-42-arm-none-eabi.src.tar.bz2 [following]
--2013-01-17 22:08:46--  http://sourcery.mentor.com/public/gnu_toolchain/armv5tel-xilka-linux-gnueabi/arm-2011.03-42-arm-none-eabi.src.tar.bz2
Resolving sourcery.mentor.com... 107.23.81.30
Connecting to sourcery.mentor.com|107.23.81.30|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-01-17 22:08:46 ERROR 404: Not Found.
Reply
#93
(2013-01-17, 23:10)schumi2004 Wrote: Do you have a copy of arm-2011.03-42-arm-none-eabi.src.tar.bz2 maybe?

Code:
10:08:35 ~/github/comskip$ ./BuildCrossArm-4.7-2012.12.sh armv5tel
task [001/059] /init/dirs
--2013-01-17 22:08:45--  http://www.codesourcery.com/public/gnu_toolchain/armv5tel-xilka-linux-gnueabi/arm-2011.03-42-arm-none-eabi.src.tar.bz2
Resolving www.codesourcery.com... 174.129.20.178
Connecting to www.codesourcery.com|174.129.20.178|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://sourcery.mentor.com/public/gnu_toolchain/armv5tel-xilka-linux-gnueabi/arm-2011.03-42-arm-none-eabi.src.tar.bz2 [following]
--2013-01-17 22:08:46--  http://sourcery.mentor.com/public/gnu_toolchain/armv5tel-xilka-linux-gnueabi/arm-2011.03-42-arm-none-eabi.src.tar.bz2
Resolving sourcery.mentor.com... 107.23.81.30
Connecting to sourcery.mentor.com|107.23.81.30|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-01-17 22:08:46 ERROR 404: Not Found.

This version has been updated to download all external dependencies.

http://www.xilka.com/xilka/source/BuildC...2013.01.sh
Reply
#94
I'm late to this but have been looking for a Linux port for a while. Since I read that comskip started from mythtv I was surprised it took so long.

In my case I was able to download and configure and compile without incident. It runs and I need to play with the ini files to improve the results. I probably avoided may of the issues I read because I don't deal with distributions form ffmpeg or xbmc. I already have current git versions of these compiled and installed. (Though I run xbmc with the internal ffmpeg until DTS-HD is fixed in the main branch).

I have used it on both .ts and .mkv files so far it produces results -- not accurate but results. I am using SiliconDust HDHomerun ATSC tuner(s) to dvbhdhomerun ( compiled / no dist ) to tvheadend ( compiled / no dist ) to produce the recording files and watch/schedule via XBMC. After cleaning up duplicate libraries and redoing all from latest source it seems to work well, comskip and re-encoding is the last step to replace mythtv. The only outstanding bugs:
1) tvheadend must use libav/ffmpeg to create mkv files because it is dropping the closed caption tracks from the file. This is why I am storing direct to ts. I can see and play the cc with VLC in these ts recordings but they are not present in mkv. I am going to try and update my source with patches I found for ffmpeg to add in DVBSUB (not DVDSUB ) and see it it carries the CC track over. Then Comskip can use them and I can get a re-encoded file in one pass from 6-8 GB down to 200-300 MB without commercials.

2) The pluging for TVHeadend offers a convienent way to view the recordings but I have tracked the debug logs and there is NO SIGN of Edit list processing from the pluging recordings menu. If I select the recorded files from the Video->Files in XBMC the EDL processing takes place and the commercial cuts are used. Not an issue if I can get #1 fixed

Sorry for the small sidetrack but indirectly related to using comskip under linux.
My environment:
Linux Mint 13 Linux mediahost 3.2.0-27-generic #43-Ubuntu SMP
On a 6 way AMD 1090T overclocked to 4.2 GHz
Reply
#95
Just wanted you guys to know that I'm pretty sure I've fixed the issue with the latest FFmpeg 1.1. They've change their default output to 32bit floats, rather than the previous 16bit signed integers.

I've also noticed that audio levels don't seem to be making there way into the frame array. So that's probably why it's not working as well as expected. I'm digging into that tomorrow and it should be a relatively easy fix. So expect a new version in the next couple of days.
Reply
#96
Can anyone provide me the latest binary for armv5tel?

For some reason both of my systems keep returning "C compiler cannot create executables" errors and i don't know how to solve it, tried several options without luck.
Reply
#97
The new 0.92f version adds support for FFmpeg 1.1+.
Reply
#98
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.
Reply
#99
Setting live_tv=1 causes a segmentation fault when processing a h264 mkv file. This happens even if recording has already finished. Just looking at the timing when this happend, it may be related to recognition of the logo, since it usually occurs after about 30 seconds.

Would be great to have this fixed. Now, if processing a recording takes too long, I have no comskip data at all. I would love to have at least some commercials skipped, without being forced to keep my media center on for a couple of hours after every recording.

Let me know if I can gather more useful info somehow.
Reply
(2013-01-23, 17:43)gnomis Wrote: Setting live_tv=1 causes a segmentation fault when processing a h264 mkv file. This happens even if recording has already finished. Just looking at the timing when this happend, it may be related to recognition of the logo, since it usually occurs after about 30 seconds.

Would be great to have this fixed. Now, if processing a recording takes too long, I have no comskip data at all. I would love to have at least some commercials skipped, without being forced to keep my media center on for a couple of hours after every recording.

Let me know if I can gather more useful info somehow.

I just ran with live_tv=1 against a "completed" mkv without issue, so I don't seem to be able to duplicate it here.

You can try the following things to locate the problem (comskip by default has debug info in the executable). Make sure to use the latest comskip.

1. If it segfaults against a "completed" mkv
"gdb --args comskip filename.mkv"
"r" <enter> - will start comskip
then you can tell me what line number it segfaults at

2. If it only segfaults against a "running" mkv
a. Turn core dumping on for your system
if comskip segfaults while it is running,
it will leave a core file in the current directory
from where you started comskip
which you can then analyze with "gdb -c core comskip"
Reply
New version 0.92k reduces the runtime memory requirement.
Reply
In Debian (experimental) I have (0.92g):
Requested 'libavcodec >= 53.42' but version of libavcodec is 53.35.0
Requested 'libavformat >= 53.24' but version of libavformat is 53.21.1
Requested 'libavutil >= 51.32' but version of libavutil is 51.22.1
I lowered needed version in "configure" and "automake.ac" (no necessary?) in hope it will works anyway, configure finished succesfully, but compiling failed with
missing aclocal-1.13
I have only automake 1.12 available in repository and as I see aclocal is part of it.
Is it really needed to have the newest available software to compile comskip? Can you provide precompiled binary for x86?

Edit: new version, nice Smile
Reply
(2013-01-25, 10:53)Marx1 Wrote: In Debian (experimental) I have (0.92g):
Requested 'libavcodec >= 53.42' but version of libavcodec is 53.35.0
Requested 'libavformat >= 53.24' but version of libavformat is 53.21.1
Requested 'libavutil >= 51.32' but version of libavutil is 51.22.1
I lowered needed version in "configure" and "automake.ac" (no necessary?) in hope it will works anyway, configure finished succesfully, but compiling failed with
missing aclocal-1.13
I have only automake 1.12 available in repository and as I see aclocal is part of it.
Is it really needed to have the newest available software to compile comskip? Can you provide precompiled binary for x86?

Edit: new version, nice Smile

Just change it in configure, if you touch configure.ac it will force a reconfig and that is not necessary. If it works for you, I'll go ahead and change the lowest versions allowed, I'm pretty sure I set it to the versions that ship with ffmpeg 0.9 and I haven't tested it with anything lower (although some people were missing essential functionality in some lower versions).

Reply
I ran the latest version against a completed h264 mkv file with live_tv=1, using gdb:
(ffmpeg 1.1.1, argtable-2-13, comskip 0.92k)

Code:
Using /var/tmp/comskip-build/comskip.ini for initiation values.
Using /var/tmp/comskip-build/comskip.ini for initiation values.
Could not find the logo file.
[matroska,webm @ 0x13f9500] Unknown/unsupported AVCodecID S_DVBSUB.
[matroska,webm @ 0x13f9500] Unknown/unsupported AVCodecID S_DVBSUB.
[h264 @ 0x1402580] reference picture missing during reorder
[h264 @ 0x1402580] reference picture missing during reorder
[h264 @ 0x1402580] Missing reference picture, default is 0
[h264 @ 0x1402580] decode_slice_header error
[matroska,webm @ 0x13f9500] Stream #3: not enough frames to estimate rate; consider increasing probesize
[matroska,webm @ 0x13f9500] Stream #4: not enough frames to estimate rate; consider increasing probesize
[matroska,webm @ 0x13f9500] Could not find codec parameters for stream 3 (Subtitle: none): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x13f9500] Could not find codec parameters for stream 4 (Subtitle: none): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, matroska,webm, from '/var/tmp/test.mkv':
  Metadata:
<snip>
  Duration: 01:10:29.04, start: 0.000000, bitrate: 9058 kb/s
    Stream #0:0(eng): Video: h264 (Main), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
    Stream #0:1(dut): Audio: mp2, 48000 Hz, stereo, s16p, 320 kb/s (default)
    Stream #0:2(dut): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s (default)
    Stream #0:3(dut): Subtitle: none (default)
    Stream #0:4(888): Subtitle: none (default)
[New Thread 0x7ffff68b0700 (LWP 15607)]
[New Thread 0x7ffff60af700 (LWP 15608)]
[ac3 @ 0x14032c0] Channel layout '5.1(side)' with 6 channels does not match specified number of channels 2: ignoring specified channel layout
[h264 @ 0x1654740] reference picture missing during reorder
    Last message repeated 1 times
[h264 @ 0x1654740] Missing reference picture, default is 0
[h264 @ 0x1654740] decode_slice_header error
[h264 @ 0x15a59c0] reference picture missing during reorder
[h264 @ 0x15a59c0] Missing reference picture, default is 65640
[h264 @ 0x15a59c0] mmco: unref short failure
0:00:14 - 368 frames in 8.08 sec(45.54 fps), 1.00 sec(44.00 fps), 0%
Program received signal SIGSEGV, Segmentation fault.
0x000000000045cba3 in CS::CommercialSkipper::buildCommListAsYouGo (this=0x7fffffffde90) at comskip.cpp:11967

So that would be this line:
Code:
if ( (csBlack.back().brightness <= local_blacklevel)
                        // && (csBlack.back().frame == framenum_real)
                        && (framenum_real > lastFrame) )

I hope this info will help. Smile Thanks
Reply
stickied
opdenkamp / dushmaniac

xbmc-pvr [Eden-PVR builds] [now included in mainline XBMC, so no more source link here :)]
personal website: [link]

Found a problem with PVR? Report it on Trac, under "PVR - core components". Please attach the full debug log.

If you like my work, please consider donating to me and/or Team XBMC.
Reply
  • 1
  • 5
  • 6
  • 7(current)
  • 8
  • 9
  • 23

Logout Mark Read Team Forum Stats Members Help
Comskip for Linux released6