running:
bash create-vod-hls.sh beach.mkv
will produce:
beach/
|- playlist.m3u8
|- 360p.m3u8
use std::path::Path; | |
use core::marker::PhantomData; | |
use core::borrow::Borrow; | |
use chrono::{DateTime, Utc, Days}; | |
use rusqlite::{named_params, Connection, Statement}; | |
use serde::{Serialize, Deserialize}; | |
use thiserror::Error; | |
pub type Result<T, E = Error> = core::result::Result<T, E>; |
#include <srtp2/auth.h> | |
#include <srtp2/cipher.h> | |
#include <srtp2/crypto_types.h> | |
#include <srtp2/srtp.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <stdio.h> | |
char SKEL_RTP_PACKET[17] = {0x80, 0x60, 0x69, 0x8f, 0xd9, 0xc2, 0x93, 0xda, 0x1c, 0x64, 0x27, 0x82, 0x98, 0x36, 0xbe, 0x88, 0x9e}; |
running:
bash create-vod-hls.sh beach.mkv
will produce:
beach/
|- playlist.m3u8
|- 360p.m3u8
#!/bin/bash | |
NET_INT="eth0" | |
CURL_TIMEOUT=3 | |
echo -n "Setting floating IP as the default gateway: " | |
# Check there's a floating IP attached to this droplet | |
if [ "$(curl -s --connect-timeout $CURL_TIMEOUT http://169.254.169.254/metadata/v1/floating_ip/ipv4/active)" != "true" ]; then | |
echo "Error: this droplet doesn't have a floating IP assigned to it." |
#include <mach/port.h> /* mach_port_t */ | |
#include <mach/mach.h> /* mach_port_allocate(), mach_task_self(), mach_port_insert_member(), MACH_PORT_RIGHT_PORT_SET */ | |
#include <sys/event.h> /* kqueue(), kevent64(), struct kevent64_s, EVFILT_MACHPORT, EV_SET64, EV_ADD */ | |
#include <sys/time.h> /* struct timespec */ | |
//#include <dispatch/private.h> | |
extern mach_port_t _dispatch_get_main_queue_port_4CF(void); | |
extern void _dispatch_main_queue_callback_4CF(void); | |
#include <stdio.h> |
A very simple example of using a map of channels for pub/sub in go.
To run it go here http://play.golang.org/p/eXwppMgHR3
YUV -> MP4 | |
gst-launch filesrc location=<YUV file name> ! videoparse height=144 width=176 framerate=15 ! x264enc name=encoder byte-stream=true bitrate=64 ! mp4mux ! filesink location=<mp4 file name> | |
gst-launch filesrc location=foreman15_600.yuv ! videoparse height=144 width=176 framerate=15 ! x264enc name=encoder byte-stream=true bitrate=64 ! rtph264pay name=packetiser ! fakesink | |
MP4 -> YUV | |
gst-launch filesrc location=<MP4 file name> ! qtdemux ! ffdec_h264 ! videoparse height=144 width=176 framerate=15 ! filesink locatiion=<YUV file name> | |
---- | |
Stream MP4 file | |
gst-launch filesrc location=IM2-YT-2_128k_20.mp4 ! qtdemux ! rtph264pay seqnum-offset=0 timestamp-offset=0 ssrc=0xaaaabbbb mtu=1450 perfect-rtptime=true ! udpsink clients=172.16.183.134:4400 |
FROM ubuntu:16.04 | |
## ----------------------------------------------------------------------------- | |
## Installing dependencies | |
## ----------------------------------------------------------------------------- | |
RUN set -xe \ | |
&& apt-get update \ | |
&& apt-get -y --no-install-recommends install \ | |
software-properties-common \ | |
apt-transport-https \ |
package wsstomp | |
import ( | |
"io" | |
"github.com/gorilla/websocket" | |
) | |
type WebsocketSTOMP struct { | |
connection *websocket.Conn |