Bueno, no sé como estarás trabjando con la información en tu web porque hay varias formas de hacerlo dependiendo de eso.
Una muy utilizada y seguramente de la que más ejemplos encuentres por la red es organizando bien las consultas a la BD.
-Una consulta que te de el total de videos que hay, con un COUNT por ejemplo o un num_rows.
-Con el total calculas cuantas páginas necesitas, en tu caso 16 vídeos por página: $total/16 y redondear hacia arriba no recuerdo cuál era la función. Te recomiendo guardar ese 16 en una variable también, por ejemplo $tam (numero vídeos por página).
-Ahora utilizas el método GET para ver en que página te hayas y hacer las consultas del tipo:
"SELECT * FROM videos LIMIT $tam*$pag, $tam", algo así te devuelve todos los vídeos de la página $pag si lo tienes todo bien.
-Con un bucle bien hecho haces saltos horizontales cada 4 vídeos.
Hay un sin fin de ejemplos por la web de esto pero haber si te hago algo rapidito aquí y se entiende:
Código PHP:
<?php
$raiz = "./";
$imgyoutube = "http://img.youtube.com/vi/";
$imgyoutubedos = "/hqdefault.jpg";
include('lib/config.php');
include('lib/head.php');
include('lib/nav.php');
$tam = 16;
$pag = $_GET['p']; //Cálculo de página
if(!isset($pag) || empty($pag || !is_int($pag) || $pag < 1)){
$pag = 1;
}
$total = mysql_num_rows(mysql_query("SELECT id_video FROM videos")); //Total vídeos
$num_pag = ceil($total/$tam);//Usar funcion de redondea ahcia arriba no reucerdo si era esta
$sql = mysql_query("SELECT * FROM videos ORDER BY id_video DESC LIMIT ".$tam*$pag." , ".$tam);
?>
<div class="container videos-index container-videos">
<div class="col-md-12">
<?php
$i = 0;
while($v = mysql_fetch_array($sql)){
if($i % 4 = 0){
?>
<div class="row">
<?php
}
?>
<div class='col-md-3'>
<a href="play.php?video=<?php echo $fila["id_video"];?>">
<img src="<?php echo $imgyoutube . substr($fila["video_link"],-11) . $imgyoutubedos;?>" />
</a>
</div>
<?php
if($i % 4 = 0){
?>
</div>
<?php
}
$i++;
}
?>
</div>
<?php
echo '<a href="www.tuweb.com/videos?p=.'$pag+1.'">Anterior</a>';
for($i = 0;$i<$num_pag;$i++;){
echo '<a href="www.tuweb.com/videos?p='.$i.'">'.$i.'</a>';
}
echo '<a href="www.tuweb.com/videos?p=.'$pag+1.'">Siguiente</a>';
?>
</div>
<?php include('lib/footer.php'); ?>
No sé si habrá algún fallo, lo he hecho rapidito y escrito directamente en el navegador jeje, pero la idea es esta.
A la hora de generar la paginación tienes que jugar con los IFS para crear cosas bonitas y controlar que desparezca el siguiente y el anterior y el link de la página en que estes, etc pero ya te lo dejo a ti para que practiques.