Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dynamic Time Warping & Synchronizace videí

Dynamic Time Warping & Synchronizace videí

Ostravské Pyvo, 2015-06-04

Petr Viktorin

June 04, 2015
Tweet

More Decks by Petr Viktorin

Other Decks in Programming

Transcript

  1. pyvo

    View Slide

  2. pyvo
    vo

    View Slide

  3. pyvo
    vo
    video!

    View Slide

  4. View Slide

  5. pyvo
    video

    View Slide

  6. pyvo
    |
    video
    |

    View Slide

  7. pyvo
    |
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyv
    |
    o
    video
    |
    pyvo
    |
    vide
    |
    o

    View Slide

  8. pyvo
    |
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyv
    |
    o
    video
    |
    pyvo
    |
    vide
    |
    o
    py
    |
    vo
    video
    |
    py
    |
    vo
    vide
    |
    o
    pyv
    |
    o
    vide
    |
    o
    py
    |
    vo
    vide
    |
    o
    py
    |
    vo
    vid
    |
    eo
    pyv
    |
    o
    vid
    |
    eo
    pyv
    |
    o
    vid
    |
    eo
    py
    |
    vo
    vide
    |
    o
    pyvo
    |
    vid
    |
    eo

    View Slide

  9. pyvo
    |
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyv
    |
    o
    video
    |
    pyvo
    |
    vide
    |
    o
    py
    |
    vo
    video
    |
    py
    |
    vo
    vide
    |
    o
    pyv
    |
    o
    vide
    |
    o
    py
    |
    vo
    vide
    |
    o
    py
    |
    vo
    vid
    |
    eo
    pyv
    |
    o
    vid
    |
    eo
    pyv
    |
    o
    vid
    |
    eo
    py
    |
    vo
    vide
    |
    o
    pyvo
    |
    vid
    |
    eo
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video
    pyvo
    video

    View Slide

  10. v i d e o
    p
    y
    v
    o

    View Slide

  11. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |

    View Slide

  12. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |

    View Slide

  13. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o

    View Slide

  14. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o

    View Slide

  15. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video

    View Slide

  16. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo

    View Slide

  17. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo

    View Slide

  18. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0

    View Slide

  19. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1

    View Slide

  20. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2

    View Slide

  21. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3

    View Slide

  22. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4

    View Slide

  23. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5

    View Slide

  24. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video

    View Slide

  25. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video

    View Slide

  26. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1

    View Slide

  27. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2

    View Slide

  28. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3

    View Slide

  29. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4

    View Slide

  30. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo

    View Slide

  31. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2

    View Slide

  32. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3

    View Slide

  33. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4

    View Slide

  34. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5

    View Slide

  35. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6

    View Slide

  36. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3

    View Slide

  37. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4

    View Slide

  38. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5

    View Slide

  39. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6

    View Slide

  40. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7

    View Slide

  41. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo

    View Slide

  42. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2

    View Slide

  43. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3

    View Slide

  44. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4

    View Slide

  45. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5

    View Slide

  46. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6

    View Slide

  47. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3

    View Slide

  48. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4

    View Slide

  49. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5

    View Slide

  50. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6

    View Slide

  51. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  52. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  53. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  54. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  55. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  56. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  57. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  58. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  59. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  60. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  61. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  62. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  63. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  64. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  65. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  66. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  67. v i d e o
    p
    y
    v
    o
    pyvo
    |
    video
    |
    pyv
    |
    o
    video
    |
    pyv
    |
    o
    vide
    |
    o
    pyvo
    |
    vide
    |
    o
    |
    pyvo
    |
    video
    |
    pyvo
    v
    |
    ideo
    0 1 2 3 4 5
    p
    |
    yvo
    |
    video
    py
    |
    vo
    |
    video
    1
    2
    3
    4
    p
    |
    yvo
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 7
    pyv
    |
    o
    v
    |
    ideo
    2 3 4 5 6
    3 4 5 6 5

    View Slide

  68. pyvo
    vo
    video!

    View Slide

  69. View Slide

  70. Dynamic Time Warping
    & Video Synchronization
    Petr Viktorin
    [email protected]
    Brněnské PyVo, 2015-05-28

    View Slide

  71. Signal A:
    Signal B:

    View Slide

  72. View Slide

  73. View Slide

  74. View Slide

  75. View Slide

  76. x - y

    View Slide

  77. ffmpeg

    View Slide

  78. $ ffmpeg -filter_complex [bd] anullsink ;
    color=color=00000000:duration=186.68:rate=50:size=1920x1081 [bb] ;
    movie=filename=in1.png:streams=dv [bc] ; [bb][bc] overlay=repeatlast=1 [ay] ; [ay][az]
    overlay=repeatlast=0 [ax] ; [ax] setpts=expr=N/FRAME_RATE/TB [out0] ;
    color=color=00000000:duration=173.68:rate=50:size=1920x1080 [av] ;
    movie=filename=in2.png:streams=dv [aw] ; [av][aw] overlay=repeatlast=1 [au] ; [au]
    fade=alpha=1:color=00000000:duration=0.5:start_time=173.18:type=out [ag] ;
    movie=filename=in3.ogv:streams=dv+da [at][bd] ; [at] fps=fps=30 [as] ; [as]
    format=pix_fmts=rgba|yuva420p|yuva422p|yuva444p [ar] ; [ar] setpts=expr=PTS-STARTPTS [aq] ; [aq]
    scale=h=1080:w=1440 [ap] ; [ap] setsar=sar=1 [ao] ; [ao]
    pad=color=00000000:h=1080:w=1920:x=0:y=0 [an] ; [an] fps=fps=25 [am] ; [am]
    fade=alpha=1:color=00000000:duration=0.5:start_time=179.233333:type=out [al] ; [al]
    trim=start=5.24506890629 [ak] ; [ak] setpts=expr=PTS-STARTPTS [aj] ; [aj] trim=end=173.68 [ai] ;
    [ai] setpts=expr=PTS-STARTPTS [ah] ; [ag][ah] overlay=repeatlast=0 [w] ; [af] fps=fps=30 [ae] ;
    [ae] format=pix_fmts=rgba|yuva420p|yuva422p|yuva444p [ad] ; [ad] setpts=expr=PTS-STARTPTS [ac] ;
    [ac] scale=h=271:w=481 [ab] ; [ab] setsar=sar=1 [aa] ; [aa]
    pad=color=00000000:h=1080:w=1920:x=1438:y=809 [z] ; [z] fps=fps=25 [y] ; [y]
    fade=alpha=1:color=00000000:duration=0.5:start_time=173.18:type=out [x] ; [w][x]
    overlay=repeatlast=0 [b] ; movie=filename=in4.MTS:streams=dv+da [af][v] ; [v]
    asetpts=expr=PTS-STARTPTS [c] ; color=color=00000000:duration=6:rate=50:size=1921x1081 [t] ;
    movie=filename=in5.png:streams=dv [u] ; [t][u] overlay=repeatlast=1 [s] ; [s]
    fade=alpha=1:color=00000000:duration=0.5:start_time=0:type=in [r] ; [r]
    fade=alpha=1:color=00000000:duration=0.5:start_time=5.5:type=out [d] ;
    aevalsrc=duration=6:exprs=0 [e] ; color=color=00000000:duration=7:rate=50:size=1921x1081 [p] ;
    movie=filename=in6.png:streams=dv [q] ; [p][q] overlay=repeatlast=1 [i] ;
    color=color=00000000:duration=7:rate=50:size=528x528 [n] ; movie=filename=in7.png:streams=dv [o]
    ; [n][o] overlay=repeatlast=1 [m] ; [m] scale=h=528:w=528 [l] ; [l] setsar=sar=1 [k] ; [k]
    pad=color=00000000:h=1080:w=1920:x=697:y=439 [j] ; [i][j] overlay=repeatlast=0 [h] ; [h]
    fade=alpha=1:color=00000000:duration=0.5:start_time=0:type=in [f] ; aevalsrc=duration=7:exprs=0
    [g] ; [b][c][d][e][f][g] concat=a=1:n=3:v=1 [az][a] ; [a] asetpts=expr=N/SR/TB [out1] -f mp4
    -c:v libx264 -c:a aac -crf 30 -maxrate 5000k -strict -2 -map [out0] -map [out1] outfile.mp4

    View Slide

  79. $ ffmpeg -filter_complex [bd] anullsink ;
    color=color=00000000:duration=186.68:rate=50:size=1920x1081 [bb] ;
    movie=filename=in1.png:streams=dv [bc] ; [bb][bc] overlay=repeatlast=1 [ay] ; [ay][az]
    overlay=repeatlast=0 [ax] ; [ax] setpts=expr=N/FRAME_RATE/TB [out0] ;
    color=color=00000000:duration=173.68:rate=50:size=1920x1080 [av] ;
    movie=filename=in2.png:streams=dv [aw] ; [av][aw] overlay=repeatlast=1 [au] ; [au]
    fade=alpha=1:color=00000000:duration=0.5:start_time=173.18:type=out [ag] ;
    movie=filename=in3.ogv:streams=dv+da [at][bd] ; [at] fps=fps=30 [as] ; [as]
    format=pix_fmts=rgba|yuva420p|yuva422p|yuva444p [ar] ; [ar] setpts=expr=PTS-STARTPTS [aq] ; [aq]
    scale=h=1080:w=1440 [ap] ; [ap] setsar=sar=1 [ao] ; [ao]
    pad=color=00000000:h=1080:w=1920:x=0:y=0 [an] ; [an] fps=fps=25 [am] ; [am]
    fade=alpha=1:color=00000000:duration=0.5:start_time=179.233333:type=out [al] ; [al]
    trim=start=5.24506890629 [ak] ; [ak] setpts=expr=PTS-STARTPTS [aj] ; [aj] trim=end=173.68 [ai] ;
    [ai] setpts=expr=PTS-STARTPTS [ah] ; [ag][ah] overlay=repeatlast=0 [w] ; [af] fps=fps=30 [ae] ;
    [ae] format=pix_fmts=rgba|yuva420p|yuva422p|yuva444p [ad] ; [ad] setpts=expr=PTS-STARTPTS [ac] ;
    [ac] scale=h=271:w=481 [ab] ; [ab] setsar=sar=1 [aa] ; [aa]
    pad=color=00000000:h=1080:w=1920:x=1438:y=809 [z] ; [z] fps=fps=25 [y] ; [y]
    fade=alpha=1:color=00000000:duration=0.5:start_time=173.18:type=out [x] ; [w][x]
    overlay=repeatlast=0 [b] ; movie=filename=in4.MTS:streams=dv+da [af][v] ; [v]
    asetpts=expr=PTS-STARTPTS [c] ; color=color=00000000:duration=6:rate=50:size=1921x1081 [t] ;
    movie=filename=in5.png:streams=dv [u] ; [t][u] overlay=repeatlast=1 [s] ; [s]
    fade=alpha=1:color=00000000:duration=0.5:start_time=0:type=in [r] ; [r]
    fade=alpha=1:color=00000000:duration=0.5:start_time=5.5:type=out [d] ;
    aevalsrc=duration=6:exprs=0 [e] ; color=color=00000000:duration=7:rate=50:size=1921x1081 [p] ;
    movie=filename=in6.png:streams=dv [q] ; [p][q] overlay=repeatlast=1 [i] ;
    color=color=00000000:duration=7:rate=50:size=528x528 [n] ; movie=filename=in7.png:streams=dv [o]
    ; [n][o] overlay=repeatlast=1 [m] ; [m] scale=h=528:w=528 [l] ; [l] setsar=sar=1 [k] ; [k]
    pad=color=00000000:h=1080:w=1920:x=697:y=439 [j] ; [i][j] overlay=repeatlast=0 [h] ; [h]
    fade=alpha=1:color=00000000:duration=0.5:start_time=0:type=in [f] ; aevalsrc=duration=7:exprs=0
    [g] ; [b][c][d][e][f][g] concat=a=1:n=3:v=1 [az][a] ; [a] asetpts=expr=N/SR/TB [out1] -f mp4
    -c:v libx264 -c:a aac -crf 30 -maxrate 5000k -strict -2 -map [out0] -map [out1] outfile.mp4

    View Slide

  80. $ ffmpeg -filter_complex [bd] anullsink ;
    color=color=00000000:duration=186.68:rate=50:size=1920x1081 [bb] ;
    movie=filename=in1.png:streams=dv [bc] ; [bb][bc] overlay=repeatlast=1 [ay] ; [ay][az]
    overlay=repeatlast=0 [ax] ; [ax] setpts=expr=N/FRAME_RATE/TB [out0] ;
    color=color=00000000:duration=173.68:rate=50:size=1920x1080 [av] ;
    movie=filename=in2.png:streams=dv [aw] ; [av][aw] overlay=repeatlast=1 [au] ; [au]
    fade=alpha=1:color=00000000:duration=0.5:start_time=173.18:type=out [ag] ;
    movie=filename=in3.ogv:streams=dv+da [at][bd] ; [at] fps=fps=30 [as] ; [as]
    format=pix_fmts=rgba|yuva420p|yuva422p|yuva444p [ar] ; [ar] setpts=expr=PTS-STARTPTS [aq] ; [aq]
    scale=h=1080:w=1440 [ap] ; [ap] setsar=sar=1 [ao] ; [ao]
    pad=color=00000000:h=1080:w=1920:x=0:y=0 [an] ; [an] fps=fps=25 [am] ; [am]
    fade=alpha=1:color=00000000:duration=0.5:start_time=179.233333:type=out [al] ; [al]
    trim=start=5.24506890629 [ak] ; [ak] setpts=expr=PTS-STARTPTS [aj] ; [aj] trim=end=173.68 [ai] ;
    [ai] setpts=expr=PTS-STARTPTS [ah] ; [ag][ah] overlay=repeatlast=0 [w] ; [af] fps=fps=30 [ae] ;
    [ae] format=pix_fmts=rgba|yuva420p|yuva422p|yuva444p [ad] ; [ad] setpts=expr=PTS-STARTPTS [ac] ;
    [ac] scale=h=271:w=481 [ab] ; [ab] setsar=sar=1 [aa] ; [aa]
    pad=color=00000000:h=1080:w=1920:x=1438:y=809 [z] ; [z] fps=fps=25 [y] ; [y]
    fade=alpha=1:color=00000000:duration=0.5:start_time=173.18:type=out [x] ; [w][x]
    overlay=repeatlast=0 [b] ; movie=filename=in4.MTS:streams=dv+da [af][v] ; [v]
    asetpts=expr=PTS-STARTPTS [c] ; color=color=00000000:duration=6:rate=50:size=1921x1081 [t] ;
    movie=filename=in5.png:streams=dv [u] ; [t][u] overlay=repeatlast=1 [s] ; [s]
    fade=alpha=1:color=00000000:duration=0.5:start_time=0:type=in [r] ; [r]
    fade=alpha=1:color=00000000:duration=0.5:start_time=5.5:type=out [d] ;
    aevalsrc=duration=6:exprs=0 [e] ; color=color=00000000:duration=7:rate=50:size=1921x1081 [p] ;
    movie=filename=in6.png:streams=dv [q] ; [p][q] overlay=repeatlast=1 [i] ;
    color=color=00000000:duration=7:rate=50:size=528x528 [n] ; movie=filename=in7.png:streams=dv [o]
    ; [n][o] overlay=repeatlast=1 [m] ; [m] scale=h=528:w=528 [l] ; [l] setsar=sar=1 [k] ; [k]
    pad=color=00000000:h=1080:w=1920:x=697:y=439 [j] ; [i][j] overlay=repeatlast=0 [h] ; [h]
    fade=alpha=1:color=00000000:duration=0.5:start_time=0:type=in [f] ; aevalsrc=duration=7:exprs=0
    [g] ; [b][c][d][e][f][g] concat=a=1:n=3:v=1 [az][a] ; [a] asetpts=expr=N/SR/TB [out1] -f mp4
    -c:v libx264 -c:a aac -crf 30 -maxrate 5000k -strict -2 -map [out0] -map [out1] outfile.mp4

    View Slide