Προς το περιεχόμενο

Αδύνατη η αναπαραγωγή των βίντεο της ΕΡΤ


DIMITRISG

Προτεινόμενες αναρτήσεις

Αν και εκτός θέματος, παραθέτω 2 script που εχω φτιαξει εδω και καιρό. Το ένα κατεβάζει όλες τις διευθύνσεις από το www.e-radio.gr και τις αποθηκεύει σε αρχεία κειμένου, ανά περιοχή. Δηλώνουμε τις περιοχές που θέλουμε στη γραμμη "LOCATIONS=..." σύμφωνα με τις περιοχές που υπάρχουν στο site.

Κάθε περιοχή αποθηκεύται σε ένα αρχειο κειμένου π.χ. staturs-athens.txt , το οποίο περιέχει ανά γραμμή το λινκ και μια περιγραφή του σταθμού (όνομα). Κάποιος μπορεί να φτιάξει κι ένα δικό του αρχείο με επιλεγμένους σταθμους π.χ. staturls-agapimena.txt κτλ.

 

1)geturls.sh

#!/bin/bash 
LOCATIONS=("thessaloniki" "athens" "epirus" "macedonia" "peloponnesus" "sterea" "thrace" )

cnt1=${#LOCATIONS[@]}
j=1
for LOCATION in "${LOCATIONS[@]}"
do
       echo "Fetching stations of $LOCATION... $j out of $cnt1"
       let j=$j+1
       CATURL="http://www.e-radio.gr/locations/$LOCATION.asp"

       wget -q -O $LOCATION.html $CATURL
       cat $LOCATION.html | grep -a stationBox | sed 's/.*erplayer//g' | sed 's/.*href=/www.e-radio.gr/g' | sed 's/>//g' | sed 's/"//g' > statlinks.txt
       if [ -f $LOCATION.html ]; then
               rm $LOCATION.html
       fi
       if [ -f staturls-$LOCATION.txt ]; then
           rm staturls-$LOCATION.txt
       fi

       cnt2=$(cat statlinks.txt | wc -l)
       i=1
       while read line     
       do    
               echo "Getting link for station $i out of $cnt2" $line
               let i=$i+1
               wget -q -O test.html $line
               ASXLINK=$(cat test.html | grep -a asx | sed 's/.*content="//g' | sed 's/".*//g')
               if [ -z "$ASXLINK" ]; then
                       ASXLINK=$(cat test.html  | grep -i nowonair | sed 's/.*whatson\///g' | sed 's/\/NowOn.*//g' | tr '[:upper:]' '[:lower:]')
                       FINALURL=$(cat test.html | grep akouspalko | sed 's/.*href="//g' | sed 's/".*//g')
                       TITLE=$ASXLINK
               else
                       wget -q -O test.html $ASXLINK
                       FINALURL=$(cat test.html | tr -d '\015' | sed 's/.*http/http/g' | sed 's/".*//g')
                       TITLE=$(cat test.html | tr -d '\015' | sed 's/<\/TITLE.*//g' | sed 's/.*TITLE>//g')
               fi

               THE_SIZE=${#FINALURL}
               echo "--> $FINALURL | $TITLE"
               if [ $THE_SIZE -gt 10 ]; then 
                       echo "$FINALURL | $TITLE" >> staturls-$LOCATION.txt
               fi
       done <statlinks.txt
       cnt3=$(cat staturls-$LOCATION.txt | wc -l)
       if [ $(($cnt3-$cnt2)) -gt 0 ]; then
               echo "I failed to discover $(($cnt3-$cnt2)) station urls "
       fi

       rm statlinks.txt
       if [ -f test.html ]; then
               rm test.html
       fi
       echo ""
done

2)radio.sh

Το δεύτερο script διαβάζει τα αρχεία .txt που έχουν δημιουργηθεί παραπάνω αυτά και φτιάχνει ενα μενου σε κονσόλα μεσα από το οποιο επιλέγεις περιοχή και σταθμό. Έχω ορίσει να παίζουν με mplayer, αλλά αλλάζοντας το THEPLAYER="" μπορεί να μπει καποιος άλλος player.

 
#!/bin/bash 

LOADING="1"
LOC_ARRAY=()
FILE_ARRAY=()
THEPLAYER="mplayer"
j=1
i=0
for fl in $( ls *.txt ); do
       j=$(($i*2))
       TMPFILE=$(echo $fl | sed 's/staturls-//g' | sed 's/.txt//g')
       FILE_ARRAY[$i]=$fl;
       LOC_ARRAY[$j]=$(($i+1))
       LOC_ARRAY[$(($j+1))]=$TMPFILE
       let i=$i+1
done  
while true
do
       LINES=$(tput lines)
       COLUMNS=78
       OPTION=$(whiptail --title "Location" --menu "select your choice" $LINES $COLUMNS $((LINES-8)) "${LOC_ARRAY[@]}" 3>&1 1>&2 2>&3)
       exitstatus=$?
       if [ $exitstatus = 0 ]; then
               STATFILE=${FILE_ARRAY[$(($OPTION-1))]}
               STATIONS=()
               cat $STATFILE | sed 's/-/\\-/g' > stations.tmp
               IFS=$'\n' read -d'' -r -a STATIONS < stations.tmp  
               MENUS=()
               URLS=()
               cnt=${#STATIONS[@]}
               j=1;
               for ((i=0;i<cnt;i++)); do
                       j=$(($i*2))
                       MENUS[$j]="$(($i+1))"
                       j=$(($i*2+1))
                       MENUS[$j]=$(echo ${STATIONS[$i]} | cut -d '|' -f 2)
                       URLS[$i]=$(echo ${STATIONS[$i]} | cut -d '|' -f 1)
               done
               DEF=1
               while true
               do
                       LINES=$(tput lines)
                       COLUMNS=78
                       OPTION=$(whiptail --default-item $DEF --title Networking --menu "select your choice" $LINES $COLUMNS $((LINES-8)) "${MENUS[@]}" 3>&1 1>&2 2>&3)
                       exitstatus2=$?
                       if [ $exitstatus2 = 0 ]; then
                               DEF=$OPTION
                               let OPTION=$OPTION-1
                               echo "Playing url:" ${URLS[$OPTION]}
                               $THEPLAYER ${URLS[$OPTION]}
                       else
                               break
                       fi
               done
       else
               break
       fi
done
rm stations.tmp

To ερτ-κοσμος κάνει και σε εμενα σπασίματα με mplayer: 

[mpegts @ 0x7f56f9ec3400]Continuity check failed for pid 4095 expected 1 got 0 
A:70199.9 (19:29:59.9) of 0.0 (00.0)  5.6% 0%  
[http @ 0x7f56f9eba820]Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
[http @ 0x7f56f9eba820]request: GET [email protected]<script data-cfhash='f9e31' type="text/javascript">/*   */</script>/index_96_a-p.m3u8?sd=10&rebase=on HTTP/1.1
User-Agent: Lavf/57.25.100
Accept: */*
Connection: close
Host: nerit4radio-lh.akamaihd.net
Cookie: _alid_=aylQwnqryrq/mHEFGgZyUw==
Icy-MetaData: 1

[AVIOContext @ 0x7f56f9ec8d20]Statistics: 967020 bytes read, 0 seeks
[hls,applehttp @ 0x7f56f9ec3400]HLS request for url 'http:[email protected]<script data-cfhash='f9e31' type="text/javascript">/*   */</script>/segment146341329_96_a-p.ts?sd=10&rebase=on', offs
et 0, playlist 0
[http @ 0x7f56f9eba820]Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
[http @ 0x7f56f9eba820]request: GET [email protected]<script data-cfhash='f9e31' type="text/javascript">/*   */</script>/segment146341329_96_a-p.ts?sd=10&rebase=on HTTP/1.1
User-Agent: Lavf/57.25.100
Accept: */*
Connection: close
Host: nerit4radio-lh.akamaihd.net
Cookie: _alid_=aylQwnqryrq/mHEFGgZyUw==
Icy-MetaData: 1 

ενώ με vlc παίζει κανονικά, αν και εμφανίζει κάθε τόσα δευτερόλεπτα ένα μύνημα λάθους στο stream:

[00007f8bf4e14248] ts demux error: libdvbpsi error (PSI decoder): TS duplicate (received 0, expected 1) for PID 4095
[00007f8bf4e14248] ts demux error: libdvbpsi error (PSI decoder): TS duplicate (received 0, expected 1) for PID 4095
  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...