Iptv

Aus Digiwiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Anleitungen

Video_encoding

Nistnet Befehle

Allgemein

GOP: (Group of Pictures) bsp:

IBBBPBBBPBPPBIBBBPBBBPBBB...

dabei ist

IBBBPBBBPBPPB

eine GOP


I-Frames: vollständige Bilder (Beim Springen innerhalb des Videos, lesen nur ab I-Frame)

P-Frames: Predicted Frames - Unterschiede zu vorhergehendem I oder P-Frame

B-Frames: Unterschiede zu vorherigen und folgenden I oder P Frame

vorläufige Scripte

matlab

funktionen die von folgenden scripten verwendet werden

http://www.digitalhalo.de/wiki/files/yuvssim.m und http://www.digitalhalo.de/wiki/files/yuvpsnr.m

berechnen psnr und ssim:

(Variablen die anzupassen sind:

% Fehlerrate
errorrate={'0.125','0.25','0.5','1','1.5','2','4'}; 
% Verzeichnisse in denen die Yuvs liegen
yuvdirs={'/media/disk/drop-all-080305/set/subset_small/080306_013554', 
'/media/disk/drop-all-080305/set/subset_small/080306_034255'} 

In linux kannst du dir die pfade fertig formatiert für matlab mit

ls|sed "s/\(.*\)/'$(pwd|sed "s/\//\\\\\//g")\/\1', /g"

ausgeben lassen


http://www.digitalhalo.de/wiki/files/iptv.m und http://www.digitalhalo.de/wiki/files/iptv_ssim.m

plots

http://www.digitalhalo.de/wiki/files/iptv_plot.m und http://www.digitalhalo.de/wiki/files/iptv_scatter_plot.m

Übertragung

Test mit nistnet

#!/bin/bash
#vlc "$1" --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}standard{access=udp,mux=ts,url=192.168.1.1,name=Teststream}'

dropsteps="0 2 4 6"
ctime="$(date +%y%m%d_%H%M%S)"
echo "----------------------------------------------"
echo $ctime

for cfile in *.*; do
echo "----------------------------------------------"
echo $cfile

for drop in $dropsteps; do
echo $drop
ssh root@192.168.0.1 "cnistnet -d"&

ssh -X plass@192.168.0.2 "cd iptv;vlc udp://@ :demux=dump :demuxdump-file=\"$ctime-$drop-$cfile\""&
ssh -X root@192.168.0.2 "cd /home/plass/iptv;tcpdump -i eth0 -w \"$ctime-$drop-$cfile-client.cap\" >> /dev/null"&
#tcpdump -i eth0 -w "/scratch/Files/Uni/6. Semester/iptv/results/$ctime-$cfile-server.cap" >> /dev/null &
sleep 15

ssh root@192.168.0.1 "cnistnet -a 192.168.1.2 192.168.0.2 --drop $drop;cnistnet -u"&
sleep 5
echo "ready for streaming"
vlc $cfile --sout '#standard{access=udp,mux=ts,url=192.168.0.2,name=Teststream}' vlc:quit
ssh root@192.168.0.1 "cnistnet -d"&
ssh -X root@192.168.0.2 "killall tcpdump; killall vlc"&

sleep 3
done
done

an Ado

Mit B-Frames (adaptive B-frame decision)

max 2 B-Frames (manche decoder (z.B. Quicktime) können nicht mehr als 2 B-frames nacheinander abspielen)

http://www.digitalhalo.de/iptv/simpsons_hd_med_5bframes.yuv.mp4

max 5 B-Frames

http://www.digitalhalo.de/iptv/simpsons_hd_med.yuv.mp4

Ohne B-frames

Testfiles:

http://www.digitalhalo.de/iptv/simpsons_hd_high.mp4

http://www.digitalhalo.de/iptv/simpsons_hd_med.mp4

http://www.digitalhalo.de/iptv/simpsons_hd_low.mp4


Testfiles2:

http://www.digitalhalo.de/iptv/simpsons_hd_med2.mp4

Persönliche Werkzeuge