Esto es un experimento que salió (creo) mal, pero aquí dejo las instrucciones por si alguien quiere emular mis pasos y parir otra gilipollez.

Objetivo: hacer un vídeo de 10 horas de duración con John Bercow gritando order!

Lo primero es buscar esos clips. He usado estos vídeos publicados en YouTube:

Descargué los vídeos usando youtube-dl para poder tener una copia local con la que trabajar.

Para extraer los cortes precisos, usé ffmpeg, porque no hay nada más edificante que editar vídeos sin usar herramientas gráficas. Hay que tener en cuenta que, por asuntos de codificación, si se quiere cortar en el milisegundo preciso hay que volver a codificar el vídeo. Ejemplo:

ffmpeg -ss 00:01:32.00 \
       -i input_02.webm \
       -c:v libx264 \
       -c:a aac -strict -2 \
       -t 3 \
       clip_08.mp4

Una cosa que no hice en el comando anterior es redimensionar los cortes para que todos tuviesen el mismo tamaño. Como concatenar archivos MP4 requiere algo de trabajo y hay que pasarlos a formato MPEG-2 TS, aproveché para hacer todo junto en el siguiente paso:

mkdir resized

for clip in clip*.mp4; do
    ffmpeg -i $clip \
    -vf scale=640:480 \
    -bsf:v h264_mp4toannexb \
    -f mpegts resized/$(basename $clip .mp4)_resized.ts;
done

Y ahora sólo hay que sacar cortes aleatorios hasta que nos cansemos y juntarlos todos hasta que el archivo resultante tenga más de 10 horas de metraje:

for clip in $(ls clip*.ts); do echo "file '$clip'" >> filelist.txt; done

for i in $(seq 1 10000); do cat filelist.txt >> filelist_aggregated.txt; done

cat filelist_aggregated.txt | shuf > filelist_aggregated_random.txt

ffmpeg -f concat -safe 0 -i filelist_aggregated_random.txt -c copy output.ts

Y ya. Cogemos el output.ts, que pesará unos 4 gigas y lo subimos a YouTube. Hice esto el fin de semana pasado y aquí me dicen que todavía se está procesando. Espero que el resultado final tenga mejor aspecto, porque lo que hay ahora es bastante triste.

No tengo sistema de comentarios. Si quieres decirme algo sobre este artículo, puedes ponerte en contacto conmigo mediante e-mail o Mastodon.