Для начала ваш нужно на backend'е вытащить из видео несколько кадров и сделать их картинками. Или же сделать мини-видео из полного.
Именно на backend'e, а не на frontend'e.
Клиентский JS тут вам не помощник. Ну либо же будет необходимо при каждом наведении грузить полностью видео файл и с помощью JS на стороне клиента вытаскивать кадры или рендерить мини-видео — так никому не нужно и так никто не делает.
VDT2, потому что label идёт до input, поэтому любое изменение в input (атрибут :checked) для label через CSS не доступны. Происходит это причине того, что CSS не умеет идти выше по коду, а только вперёд.