Skip to content

Instantly share code, notes, and snippets.

View boblemarin's full-sized avatar

boblemarin boblemarin

View GitHub Profile
@boblemarin
boblemarin / ai.md
Last active June 25, 2022 14:09
AI Generative Tools

AI Generative Tools

Voici un listing de sites où l'on peut entrer une phrase et en sortir une image générée par l'intelligence artificielle.

@boblemarin
boblemarin / liquid.md
Last active May 24, 2022 11:41
Liquid Workflow

resizing.bat

@echo off
setlocal EnableDelayedExpansion
for /L %%a in (0,1,600) do (
    set /A "index=%%a*5+420"
    echo %%a : liquidify to !index!
    magick "input.png" -liquid-rescale !index!x!index! "out/out%%a.png"

echo %%a : resize to 1920

@boblemarin
boblemarin / ffmpeg.md
Last active November 16, 2021 15:19
FFMPEG Cheat Sheet

FFMPEG - AV files manipulation

FFMPEG: extraire (sans ré-encodage) 5s à partir de 30s

ffmpeg -ss 00:00:30 -i input.mp4 -t 00:00:05 -vcodec copy -acodec copy output.mp4

jusque la fin:

ffmpeg -ss 01:14:00 -i input.mp4 -vcodec copy -acodec copy output.mp4

/* Get CSV-formatted event list from https://www.journee-mondiale.com/les-journees-mondiales.htm */
let months = ['janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre'];
let out = 'Start date, Subject\n';
let curm = (new Date()).getMonth()+1;
let cury = (new Date()).getFullYear();
function dd(n) { return n<10?"0"+n:n; }
document.querySelectorAll(".content li").forEach(function(el) {
let parts = el.innerText.split(' ');
let day = parts[0]=='1er' ? '1' : parts[0];
let month = months.indexOf(parts[1]) + 1;
@boblemarin
boblemarin / 360.md
Last active November 5, 2021 11:26

Workflow actuel :

Sur base d'un rendu en séquence de PNG, l'encodage se fait avec ffmpeg comme suit (30fps):
ffmpeg -framerate 30 -start_number 1 -i %4d.png -c:v libx265 -preset slow -crf 17 -vf "scale=4096x4096" -pix_fmt yuv420p -an -movflags faststart "encoded.mp4"

Ensuite, on fait boucler la vidéo pour avoir une longueur suffisante (ici 16 x)(pas de réencodage) :
ffmpeg -stream_loop 16 -i encoded.mp4 -c copy encoded-looped.mp4

Il suffit enfin d'injecter les métadonnées 360 à l'aide du soft Spatial Media Metadata Injector, ce qui crée le fichier final à injecter dans le casque.

@boblemarin
boblemarin / gist:ba020e3e696227bde2212c03b7ea475e
Created November 3, 2021 11:54
Useful resources for 360 video and spatial audio encoding
Official tech info, includes supported resolutions/framerates
https://creator.oculus.com/blog/encoding-high-resolution-360-and-180-video-for-oculus-go/?locale=fr_FR
FFMPEG Cheat sheet, includes some 360 related functions
https://www.vrtonung.de/en/ffmpeg-codes/
Encoding for Oculus Media Studio
http://echeng.com/articles/encoding-for-oculus-media-studio/

Keybase proof

I hereby claim:

  • I am boblemarin on github.
  • I am boblemarin (https://keybase.io/boblemarin) on keybase.
  • I have a public key ASDsHY3KcH9C66lY-3ewzckTNPIa-4V0iANKHHmBRwPMfAo

To claim this, I am signing this object:

@boblemarin
boblemarin / dabblet.css
Created December 10, 2012 08:37
La technique de la checkbox
/*
* La technique de la checkbox
**/
input[type="checkbox"] {
display: none;
}
.truc1label {
display: block;
@boblemarin
boblemarin / dabblet.css
Created December 7, 2012 09:51 — forked from lipelip/dabblet.css
Controler une animation CSS3 (c)lipelip
/**
* Controler une animation CSS3 (c)lipelip
*/
body {
background: #003366;
font-family: "comic sans ms";
}
#nyancat {
@boblemarin
boblemarin / dabblet.css
Created December 7, 2012 09:50 — forked from lipelip/dabblet.css
3D transform: une porte comic (c) lipelip
/**
* 3D transform: une porte comic (c) lipelip
*/
#container {
width: 250px;
height: 400px;
background: #CCC;
-webkit-perspective: 1000px;