|
2 | 2 | Language-agnostic automatic synchronization of subtitles to video,
|
3 | 3 | so that subtitles are aligned to the correct starting point within the video.
|
4 | 4 |
|
5 |
| -**_This is my submission for HackIllinois 2019._** |
| 5 | +The implementation for this project was started during HackIllinois 2019, |
| 6 | +for which it received an **_Honorable Mention_** |
| 7 | +(ranked in the top 5 projects, excluding projects that won company-specific prizes). |
6 | 8 |
|
7 | 9 | Turn this: | Into this:
|
8 | 10 | :-------------------------------:|:-------------------------:
|
@@ -73,17 +75,18 @@ The synchronization algorithm operates in 3 steps:
|
73 | 75 | Try to align these strings by matching 0's with 0's and 1's with 1's. We score
|
74 | 76 | these alignments as (# matching digits) - (# mismatched digits).
|
75 | 77 |
|
76 |
| -The resulting alignment from step 3 determines how to offset the subtitles in time |
77 |
| -so that they are properly aligned with the video. Because the binary strings |
| 78 | +The best-scoring alignment from step 3 determines how to offset the subtitles in time |
| 79 | +so that they are properly synced with the video. Because the binary strings |
78 | 80 | are fairly long (millions of digits for video longer than an hour), the naive
|
79 | 81 | O(n^2) strategy for scoring all alignments is unacceptable. Instead, we use the
|
80 | 82 | fact that "scoring all alignments" is a convolution operation and can be implemented
|
81 | 83 | with the Fast Fourier Transform (FFT), bringing the complexity down to O(n log n).
|
82 | 84 |
|
83 | 85 | # Future Work
|
84 | 86 | The prototype VLC patch is very experimental -- it was developed under pressure
|
85 |
| -and just barely works. The clear next step for this project is a more robust |
86 |
| -integration with VLC, either directly in the VLC core, or as a plugin. |
| 87 | +and just barely works. I would love to see this project more robustly |
| 88 | +integrated with VLC, either directly in the VLC core, or as a plugin. |
| 89 | +If you or anyone you know has ideas for how to accomplish this, please let me know! |
87 | 90 |
|
88 | 91 | # Credits
|
89 | 92 | This project would not be possible without the following libraries:
|
|
0 commit comments