Skip to content

Instantly share code, notes, and snippets.

View hdsdi3g's full-sized avatar

hdsdi3g hdsdi3g

View GitHub Profile
@hdsdi3g
hdsdi3g / gist:4bcf53a806a8288710c8640d17c4a50e
Created January 29, 2023 22:47
Live PCM over mpegts/RTP/UDP, with decoder
# Coder
ffmpeg -re -stream_loop -1 -i <source.wav> -strict -2 -c:a s302m -f rtp_mpegts "udp://127.0.0.1:1234"
# or just
ffmpeg -i <source live> -strict -2 -c:a s302m -f rtp_mpegts "udp://127.0.0.1:1234"
# Decoder
ffmpeg -strict -2 -c:a s302m -i rtp://127.0.0.1:1234 -c pcm_s16le -f wav - | ffplay -nodisp -
# or just
@hdsdi3g
hdsdi3g / correct_audio_loudness.sh
Created November 7, 2016 23:39
Apply a loudness correction for a video file with ffmpeg and libebur128, without re-transcoding the video stream
#!/bin/sh
# This script needs ffmpeg v3.2 (--enable-libebur128) + jq
SOURCE=$1;
JSON_ANALYST_FILE="$SOURCE.json"
DEST_I="-23"
DEST_LRA="15"
DEST_TRUE_PEAK="-3"
import java.io.File;
import java.net.URL;
import java.util.List;
import javax.xml.bind.DatatypeConverter;
import javax.xml.bind.JAXBElement;
import javax.xml.namespace.QName;
import org.apache.commons.io.FileUtils;
@hdsdi3g
hdsdi3g / import-telestream-vantage-ws.sh
Created August 15, 2016 01:24
Create Java packages with wsimport for a Vantage setup.
#!/bin/sh
# USAGE ./import-telestream-vantage-ws.sh <host name/IP of Vantage server>
WS_SERVER=$1
mkdir -p src
wsimport -extension -XadditionalHeaders -keep -p net.telestream.vantage.ws -clientjar telestream-vantage-ws-bin.jar -s src "http://$WS_SERVER:8676/?wsdl"
cd src
zip -r ../telestream-vantage-ws-src.zip .
@hdsdi3g
hdsdi3g / import-avid-interplay-ws.sh
Created August 13, 2016 00:49
Create Java packages with wsimport for an Interplay setup.
#!/bin/sh
# USAGE ./import-avid-interplay-ws.sh <host name/IP of Interplay webservice server>
WS_SERVER=$1
createPackages () {
mkdir -p $3
wsimport -extension -XadditionalHeaders -keep -p $1 -clientjar $2-bin.jar -s $3 $4
cd $3
zip -r ../$2-src.zip .
import java.io.IOException;
import java.net.URL;
import java.util.List;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import com.avid.interplay.ws.assets.AssetDescriptionType;
import com.avid.interplay.ws.assets.Assets;
import com.avid.interplay.ws.assets.AssetsFault;
@hdsdi3g
hdsdi3g / gist:409ed2b216331f7afef6e8da7daed769
Created May 15, 2016 09:19
Create a h264 HD 50 Mbps CBR 8 bits 4:2:0 GOP 12 (avec images B)
ffmpeg -y -i <> -an -codec:v h264 -pix_fmt yuv420p -b:v 50000k -g 12 -bf 3 -maxrate 50000k -minrate 50000k -s 1920x1080 -movflags +faststart -f mov out.mp4
@hdsdi3g
hdsdi3g / gist:0b70936dbb9093c32818960963f51cd3
Created May 6, 2016 19:34
Computing client side time drift
$(document).ready(function() {
try {
$("#btnSession").addClass("active");
var server_time = ${System.currentTimeMillis()};
var client_time = Date.now();
var drift = (client_time - server_time) / 1000;
if (window.performance) {
if (window.performance.timing) {
if (window.performance.timing.responseStart) {
/**
* "XXXXXXXX_MON FICHIER.mov" => "S0054321_MON_FICHIER.mov"
* "XXXXXXXXMon Autre fichier &à archiver .mov" => "00012345_MON_AUTRE_FICHIER_A_ARCHIVER.mov"
*/
public static String sanitiseFilename(String filename) {
StringBuffer sb = new StringBuffer();
String filename_normalized = combining_diacritical_marks.matcher(Normalizer.normalize(filename, Normalizer.Form.NFD)).replaceAll("").toUpperCase();
char[] filename_chr = filename_normalized.trim().toCharArray();
char chr;
@hdsdi3g
hdsdi3g / gist:6762072
Last active December 24, 2015 07:09 — forked from iammichiel/gist:6761666

Play 1 et 2

A la lecture de l'article, on a l'impression que Play 1 et 2 sont identiques, que la version 2 n'est qu'une évolution de la version 1.X. Ce sujet fait beaucoup débat dans la communauté mais je pense qu'il faut se rendre à l'évidence :

  • la version 1 est passé en bug-fix, c'est-à-dire qu'aucune nouvelle fonctionnalité ne sera développé et que l'équipe de Play se contente de corriger les bugs.
  • La version 2 est une ré-écriture totale de Play. Ce n'est pas une évolution et sur beaucoup de points est en rupture avec Play 1.

Je n'aime pas trop Scala, et je projet que je suis en train d'écrire est bien en Play 1, que je connait donc mieux.

Le choix du site de Playframework pour en démontrer la stabilité