blob: 10a58886471f5ede883757f78efb1a8f20b046af (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
= Automatisierte Erkennung von Werbeblöcken
:author: Jan Klemkow, Benjamin Franzke
:lang: de
== Idee
image::image/film.svg["Filmszenen", width="100%"]
== cuttime
image::image/cuts.svg[]
== cuttime
image::image/cuts_diff.svg[]
== findcut
image::image/findcut.svg[]
== overlap
image::image/overlap_problem.svg[width="100%"]
== overlap
image::image/overlap_tool.svg[width="100%"]
== cutting.sh
image::image/cuting.svg[width="100%"]
== cutint.sh
* Angegebene Intervalle von Input-Video in Output-Video kopieren
[source,sh]
----
./cutint.sh input output [start duration [start duration ...]]
----
* Input Video entsprechend Intervallangabe in Einzelvideos zerlegen
** Neukodierung notwendig (start.type != keyframe?)
* concat aller Einzelvideos -> output
== rmcut.sh
image::image/rmcut.svg[width="100%"]
== rmcut.sh
[source,sh]
----
include::../src/rmcut.sh[]
----
[source,sh]
----
./rmcut.sh heute100sec.wmv teaser.wmv output.wmv
----
[source,sh]
----
./findcut -rlT heute100sec.wmv teaser.wmv
17880 18939
38200 39259
57040 58099
77960 79019
96040 97099
----
[source,sh]
----
./cutint.sh heute100sec.wmv output.wmv 0 17.880 18.939 19.261 \
39.259 17.781 58.099 19.861 79.019 17.021 97.099
----
== Struktur
image::image/stack.svg[width="100%"]
== Simple Video API
[source,c]
----
include::../src/video_decode.h[]
----
== Demonstration
Demonstration!
// vim: ft=asciidoc:
|