FlickFetch

Flickfetch 4.1.0.4 Osaa ladata uusimman Sannikka&Ukkolan

[#1] 10.17.38
Objektin viittaukseksi ei voi määrittää objektiesiintymää.
kohteessa FlickFetch.AreenaUtils.GetToken(JToken obj, String str)

[#2] 10.17.38
Objektin viittaukseksi ei voi määrittää objektiesiintymää.
kohteessa FlickFetch.AreenaUtils.GetToken(JToken obj, String str)

[#3] 10.17.38
Objektin viittaukseksi ei voi määrittää objektiesiintymää.
kohteessa FlickFetch.AreenaUtils.GetTokenLang(JToken obj, String strFi, String strSv)

[#4] 10.17.38
Objektin viittaukseksi ei voi määrittää objektiesiintymää.
kohteessa FlickFetch.AreenaUtils.GetTokenLang(JToken obj, String strFi, String strSv)

[#5] 10.17.39
Indeksi oli sallitun alueen ulkopuolella. Indeksi ei saa olla negatiivinen, ja sen on oltava kokoelmaa pienempi.
Parametrin nimi: index
kohteessa System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
kohteessa System.Collections.Generic.List`1.get_Item(Int32 index)
kohteessa FlickFetch.AreenaUtils.GetToken(JToken obj, String str)

[#6] 10.17.39
Objektin viittaukseksi ei voi määrittää objektiesiintymää.
kohteessa FlickFetch.Areena.Fetch(String address, String type, String match, Int32 quality, Dictionary`2 qualities, Int32 qualitySelected, Boolean noError)

[#7] 10.17.51
Syötemerkkijonon muoto ei ollut kelvollinen.
kohteessa System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt)
kohteessa FlickFetch.FormMain.WndProc(Message& m)

Siinä lokista lisätiedot kyseisestä jaksosta.
 
Oisko mahdollista saada tämmöisiä linkejä

https---areena.yle.fi/tv/ohjelmat/30-356

eli Teeman elokuvafestivaali

Toimimaan niin että niistä voisi tehdä Ohjelmalistan.

(--- bbs:n autotunaroinnin estämiseksi)
 
Oisko mahdollista saada tämmöisiä linkejä

https---areena.yle.fi/tv/ohjelmat/30-356

eli Teeman elokuvafestivaali

Toimimaan niin että niistä voisi tehdä Ohjelmalistan.

(--- bbs:n autotunaroinnin estämiseksi)

Laitetaan todo-listalle odottelemaan tutkimista, mutta valitettavasti tällä hetkellä en ehdi näihin ns. "vähemmän tärkeisiin" (älä ymmärrä väärin!) keskittyä. Pääpaino että ohjelma toimii, siitä johtuen:

v4.1.1.0 - 2.12.2018
- Lisätty: Mahdollisuus näyttää toimintaan liittyviä uutisia ohjelmaa käynnistettäessä. Mitään spämmäystä tässä ei aleta harrastaa, vaan esim. kerrotaan jos joku ominaisuus ei tällä hetkellä toimi tms. Asetus on oletuksena päällä (koska muuten kukaan ei sitä tajua laittaa päälle ja koko homma menee hukkaan), mutta sen voi kytkeä pois asetuksista "Päivitykset" -sivulta, "[x] Näytä uutisia käynnistettäessä". Uutiset voi myös pyyhkiä ikkunasta pois klikkaamalla hiiren oikealla napilla ja valitsemalla "Tyhjennä".
- Lisätty: Ajastetun suoran lähetyksen tallennuksen alkaessa pääikkunan tekstikenttään lisätään kelloajan lisäksi myös päiväys.
- Lisätty: Asennuksen mukana tulee kolme .config -tiedostoa, jotta ohjelman ajaminen liian vanhalla .NET Frameworkilla estetään oikean toiminnan takaamiseksi.
- Muutettu: Valinnainen XML-tiedosto tallennetaan vasta kun tiedostoa aletaan lataamaan.
- Muutettu: Areenan radio-ohjelmat tallennetaan nyt kaikki FFmpeg:llä.
- Korjattu: Jotkut Areenan TV-sarjat ei lataantuneet.
HUOM! FlickFetch valittaa päivityksen jälkeen puuttuvista tiedostoista, joten anna sen hakea ne. Liittyy update.exe.config -tiedostoon, jota ei vanhan version päivitystyökalu osaa laittaa ruotuun.
 
Laitetaan todo-listalle odottelemaan tutkimista, mutta valitettavasti tällä hetkellä en ehdi näihin ns. "vähemmän tärkeisiin" (älä ymmärrä väärin!) keskittyä. Pääpaino että ohjelma toimii, siitä johtuen:
OK
 
Mitä olet tehnyt ohjelmalle kun joka ikinen Areena-lataus epäonnistuu muutaman prosentin jälkeen? Win7 64-bit ja Net Framework 4.7.2 asennettu. Ei auta edes puhdas asennus.

Ja olisiko mitenkään mahdollista saada vanhat versiot ladattaviksi ettei joudu aivan liriin tällaisten tilanteiden varalta? Jatkossa en enää koskaan päivitä ohjelmaa niin kauan kuin se toimii.
 
Mitä olet tehnyt ohjelmalle kun joka ikinen Areena-lataus epäonnistuu muutaman prosentin jälkeen? Win7 64-bit ja Net Framework 4.7.2 asennettu. Ei auta edes puhdas asennus.

Ja olisiko mitenkään mahdollista saada vanhat versiot ladattaviksi ettei joudu aivan liriin tällaisten tilanteiden varalta? Jatkossa en enää koskaan päivitä ohjelmaa niin kauan kuin se toimii.

Täällä toimii uusin versio Areenan kanssa, mitä nyt pari jaksoa latasin.

Aiemman version saa kai ladattua tuolta: Index of /dl
 
Noista versioista vanhin on 4.1.0.4, joka ei edes yhdistä palvelimeen. Uusin versio 4.1.1.0 yhdistää, mutta lataus epäonnistuu muutaman prosentin jälkeen. Aikaisempi käyttämäni versio oli 4.0.4.0, joka toimi ainakin vielä aiemmin tällä viikolla. Tiedostojen päiväyksistä näen että sillä on ladattu ohjelman jakso 28.11. Tämä uusin päivitys rikkoi kaiken. Palomuurinkin otin pois päältä, mutta eipä se mitään ilmoitellut vaikka oli päälläkin, joten tuskin sekään on syy.

Edit: Lokissa tulee "An unexpected TLS packet was received". Kuitenkin rekisteritietojen mukaan Net Framework 4.7.2. on asennettu.
 
Viimeksi muokattu:
Noista versioista vanhin on 4.1.0.4, joka ei edes yhdistä palvelimeen. Uusin versio 4.1.1.0 yhdistää, mutta lataus epäonnistuu muutaman prosentin jälkeen. Aikaisempi käyttämäni versio oli 4.0.4.0, joka toimi ainakin vielä aiemmin tällä viikolla. Tiedostojen päiväyksistä näen että sillä on ladattu ohjelman jakso 28.11. Tämä uusin päivitys rikkoi kaiken. Palomuurinkin otin pois päältä, mutta eipä se mitään ilmoitellut vaikka oli päälläkin, joten tuskin sekään on syy.

Edit: Lokissa tulee "An unexpected TLS packet was received". Kuitenkin rekisteritietojen mukaan Net Framework 4.7.2. on asennettu.

Jaa-a, ei ongelmia täällä. Jotain siellä päässä oltava.

Lisäsin takaisin 4.0.4.0 version sinne dl-kansioon. Se on siis viimeisin versio ennen siirtymistä NET 4.7:n.
 
Mielenkintoinen havainto

Mun vanha FlickFetch asennus (ikivanha jota on vain aina päivitetty) löytää/lataa onnistuneesti monia sellaisia ohjelmai johon tuon 4xx betan päälle aloitettu uudempi FlickFetch päivtysversio ei pysty.

Ts voiko noiden välillä olla jotain eroa joka selittäisi tuon että vanhempaa asennuskantaa oleva Flickfetch onnstuu latauksissa paremmin kuin tuo uudempaa asennuskantaa oleva.
 
4.0.4.0 toimii kun tänään kokeilin, uudemmat eivät toimi. Tuo 4.1.0.4 ei varmaan yhdistänyt sen takia kun latasin erehdyksessä sen tynkäversion, mutta enpä kai jaksa enää kokeilla. Menen tällä versiolla niin kauan kuin pelittää.
 
Mielenkintoinen havainto

Mun vanha FlickFetch asennus (ikivanha jota on vain aina päivitetty) löytää/lataa onnistuneesti monia sellaisia ohjelmai johon tuon 4xx betan päälle aloitettu uudempi FlickFetch päivtysversio ei pysty.

Ts voiko noiden välillä olla jotain eroa joka selittäisi tuon että vanhempaa asennuskantaa oleva Flickfetch onnstuu latauksissa paremmin kuin tuo uudempaa asennuskantaa oleva.

Laitatko linkin johonkin ohjelmaan, jonka vanha versio löytää, mutta uudempi ei.
 
Latasinpa tuon korismatsin 4.1.1.0:lla, ei ole ääntä? Pitää nyt katsoa kämmäsinkö jotain päivityksessä, Windows 7:lla mennään täällä(kin).
 
Ei muuten onnistu lataukset enää 4.0.4.0-versiollakaan. Tulee mieleen onko Yle alkanut estämään latauksia vai onko operaattorin (DNA:n) verkko aivan susi.

Edit: Wireshark näyttää tällaista: Imgur. Kaikki palomuurit pois käytöstä (reititin ja Windows), joten mistä kiikastaa?
 
Viimeksi muokattu:
Ei muuten onnistu lataukset enää 4.0.4.0-versiollakaan. Tulee mieleen onko Yle alkanut estämään latauksia vai onko operaattorin (DNA:n) verkko aivan susi.
Ehkäpä voisit kertoa mitä ohjelmaa FF ei osaa ladata niin, muut voisivat kokeilla ja katsoa, onnistuvatko he lataamaan. Jos yksi onnistuu ja toinen ei, on vika muussa kuin FF:ssä.
 
Ehkäpä voisit kertoa mitä ohjelmaa FF ei osaa ladata niin, muut voisivat kokeilla ja katsoa, onnistuvatko he lataamaan. Jos yksi onnistuu ja toinen ei, on vika muussa kuin FF:ssä.

Eipä se kauheasti ohjelmasta riipu. Kaikki epäonnistuvat. Lähinnä uutisia ja aamu-tv:tä yritin ladata.

Olisi mielenkiintoista tietää miksi lataukset toimivat vielä viime viikolla. Omassa koneessa tai lähiverkossa ei ole tehty mitään muutoksia.

Edit: otin internet-asetuksista TLS 1.0:n ja 1.1:n pois käytöstä ja sain ainakin yhden latauksen onnistumaan, mutta vasta toisella yrityksellä, joten syy-yhteys jäi vähän epäselväksi. Pakko olla jotain häikkää verkossa. Packet lossia aivan liikaa jossain välillä. Ei ilmeisesti enää voi ruuhka-aikoina latailla.
 
Viimeksi muokattu:
Eipä se kauheasti ohjelmasta riipu. Kaikki epäonnistuvat. Lähinnä uutisia ja aamu-tv:tä yritin ladata.

Olisi mielenkiintoista tietää miksi lataukset toimivat vielä viime viikolla. Omassa koneessa tai lähiverkossa ei ole tehty mitään muutoksia.
Vaikeuksiesi perussyy on se, että yrität käyttää vanhentunutta käyttöjärjestelmän versiota ja arvattavasti myös sen jo rapautumaan päässyttä asennusta. Win7 ja etenkin sen 64-bittinen versio, joka ei koskaan päässyt laajaan käyttöön, eroaa ehjänäkin monissa detaljeissa nyky-Windowsista. Tuen saantikin alkaa olla ongelma. Vaikka Microsoft lupaa bugikorjauksia vielä vuoden ajan, ei monellakaan sovelluskehittäjällä ole enää vanhaa Wintoosaa aktiivisessa käytössään, joten poikkeamat jäävät helposti havaitsematta. Win7:n käyttäjä on siis omien tietojensa ja taitojensa varassa.

Tästä huolimatta FF toimii oikein hyvin virtuaalikoneeseen vasta asennetussa puhtaassa Windows seiskassa, jossa on kaikki patchit ja uusin .net framework. Tosin 64-bittistä imagea ei nyt ollut käytettävissä.
Edit: otin internet-asetuksista TLS 1.0:n ja 1.1:n pois käytöstä ja sain ainakin yhden latauksen onnistumaan, mutta vasta toisella yrityksellä, joten syy-yhteys jäi vähän epäselväksi. Pakko olla jotain häikkää verkossa. Packet lossia aivan liikaa jossain välillä. Ei ilmeisesti enää voi ruuhka-aikoina latailla.
Control Panelin Internet Options / Internet Properties on reliikki, joka säätelee vain Internet Explorerin toimintaa. Voit raksia pois kaikki SSL/TLS-optiot ilman että tällä on mitään vaikutusta Chromeen, Firefoxiin tai edes Edgeen. Puhumattakaan .net frameworkin nettikirjastosta.
 
Vaikken urheilua harrastakaan, rupesin tutkimaan, miten Areenan sporttitallenteet saisi myös laturi-ohjelmallani ladattua. Ylellä on ainakin kahdenlaisia urheiluvideoita, joista yhdet saa ladattua lähes normaaliin tapaan, mutta toiset vaativat erikoiskäsittelyä. Yleisperiaatehan selviää tämän ketjun viestejä tutkimalla. Mutta ongelmaksi jää, että kaikissa ladatuissa videoissa ei ole ääntä, esimerkkinä koripallon MM-karsinnat. Tämä vikahan on myös FlickFetchin uusimmassa versiossa. Kuitenkin esimerkiksi VLC saa samasta streamista kyllä äänen esiin.

Googlauksen ja kokeilun jälkeen osoittautuu, että ffmpeg tarvitsee lisää aikaa streamin analysointiin. Niiden sporttivideoiden alussahan on pitkälti "tyhjää". Tätä varten lisätään pari vipua:

ffmpeg -analyzeduration 6000M -probesize 6000M -y -i "input" -c copy "output.mkv"

Tuossa 6000M on jostain kopsattu riittävän suuri luku.

Seuraavaksi pitäisi tutkia, miksen saa pienempiä resoluutioita toimimaan niissä erikoisemmissa sporttipätkissä. Jääköön toiseen kertaan.

Laturin tuorein versio 1.2.1 löytyy entisestä paikasta:

laturi – Google Drive
 
Vaikken urheilua harrastakaan, rupesin tutkimaan, miten Areenan sporttitallenteet saisi myös laturi-ohjelmallani ladattua. Ylellä on ainakin kahdenlaisia urheiluvideoita, joista yhdet saa ladattua lähes normaaliin tapaan, mutta toiset vaativat erikoiskäsittelyä. Yleisperiaatehan selviää tämän ketjun viestejä tutkimalla. Mutta ongelmaksi jää, että kaikissa ladatuissa videoissa ei ole ääntä, esimerkkinä koripallon MM-karsinnat. Tämä vikahan on myös FlickFetchin uusimmassa versiossa. Kuitenkin esimerkiksi VLC saa samasta streamista kyllä äänen esiin.

Googlauksen ja kokeilun jälkeen osoittautuu, että ffmpeg tarvitsee lisää aikaa streamin analysointiin. Niiden sporttivideoiden alussahan on pitkälti "tyhjää". Tätä varten lisätään pari vipua:

ffmpeg -analyzeduration 6000M -probesize 6000M -y -i "input" -c copy "output.mkv"

Tuossa 6000M on jostain kopsattu riittävän suuri luku.

Seuraavaksi pitäisi tutkia, miksen saa pienempiä resoluutioita toimimaan niissä erikoisemmissa sporttipätkissä. Jääköön toiseen kertaan.

Laturin tuorein versio 1.2.1 löytyy entisestä paikasta:

laturi – Google Drive

Kappas, näinkö helpolla tästä selviää. Hyvä löytö. Ainakin Classical Trancelations -konsertti https ://areena.yle.fi/1-50007533 latautui nyt vihdoin äänten kera :) Muuta en kyllä testannutkaan. Noi valitsimet tuskin mitään haittaa tuovat, ei silmiinpistävästi hidastanut latauksen alkua, joten jos nuo nyt vaikuttaa toimivan kaikkien latausten kanssa niin ne voisi ottaa oletukseksi.
 
Kappas, näinkö helpolla tästä selviää. Hyvä löytö. Ainakin Classical Trancelations -konsertti https ://areena.yle.fi/1-50007533 latautui nyt vihdoin äänten kera :) Muuta en kyllä testannutkaan. Noi valitsimet tuskin mitään haittaa tuovat, ei silmiinpistävästi hidastanut latauksen alkua, joten jos nuo nyt vaikuttaa toimivan kaikkien latausten kanssa niin ne voisi ottaa oletukseksi.
Eihän tuossa konserttivideossa ole mitään erikoista, se latautuu äänen kera myös FlickFetchillä. Kokeilepa sensijaan tätä:

https: //areena.yle.fi/tv/ohjelmat/30-21?play=1-50022484

Löytämääni temppua siis tarvitaan vain niissä videoissa, joiden tallenne haetaan manifest_urlin osoittamasta paikasta palveluosoitteesta yleawodamd.akamaized.net, siten kuin ystävämme TenderBeef tämän ketjun viestissä 1191 opastaa.
 
Eihän tuossa konserttivideossa ole mitään erikoista, se latautuu äänen kera myös FlickFetchillä. Kokeilepa sensijaan tätä:

https: //areena.yle.fi/tv/ohjelmat/30-21?play=1-50022484

Löytämääni temppua siis tarvitaan vain niissä videoissa, joiden tallenne haetaan manifest_urlin osoittamasta paikasta palveluosoitteesta yleawodamd.akamaized.net, siten kuin ystävämme TenderBeef tämän ketjun viestissä 1191 opastaa.

En pääse tällähetkellä VPN:n takaa tuota koripalloa lataamaan ja testaamaan.

Mutta aiemmin tuo mainitsemani konsertti tuli ilman ääniä, liekö sitä sitten muutettu sen jälkeen. Sain jopa bugiraportteja ko. konsertista.
 
Mutta aiemmin tuo mainitsemani konsertti tuli ilman ääniä, liekö sitä sitten muutettu sen jälkeen. Sain jopa bugiraportteja ko. konsertista.
Ffmpegin versiokin on saattanut muuttua. FlickFetchin mukana taisi vielä äskettäin tulla aika vanha.

Ote ffmpeg ukk:sta:

VOB and a few other formats do not have a global header that describes everything present in the file. Instead, applications are supposed to scan the file to see what it contains. Since VOB files are frequently large, only the beginning is scanned. If the subtitles happen only later in the file, they will not be initially detected.

Some applications, including the ffmpeg command-line tool, can only work with streams that were detected during the initial scan; streams that are detected later are ignored.

The size of the initial scan is controlled by two options: probesize (default ~5 Mo) and analyzeduration (default 5,000,000 µs = 5 s). For the subtitle stream to be detected, both values must be large enough.


Tuossa on kysymys tekstiraidasta, mutta äänen kanssa on ilmeisesti sama juttu. Niissä ongelmavideoissa on jostain teknisestä syystä varsin pitkä mykkä johdanto.
 
Milläs komennolla ffmpeg lisäisi kaikki ladatut .srt:t mukaan (esim. .srt, .fin.srt, .fih.srt*) .mp4 muotoiseen (Chromecastin vuoksi) videoon mukaan, ei poltettuna. Ottaako -i parametri jokerimerkkejä vastaan (eli menisi vain -i *.srt)? Ja vielä mov_text mukaan?

Tarkoitus olisi siis olla FlickFetchin latauskomento Areena TV:n kanssa.

Kokeilemalla selviäisi, mutta ketjussamme on nykyään ffmpegin tuntevia, joten ajattelisin että voisi löytyä kuin apteekin hyllyltä. :)

* Ei välitetä siitä, että osa on useinkin vain samoja, vievät tilaa kuitenkin vähän, niin tarpeellinen ainakin tulisi mukaan. Toisaalta olisi hyvä selvitä siitä ettei srt:tä ole, eli ehtolauseita peliin?
 
Milläs komennolla ffmpeg lisäisi kaikki ladatut .srt:t mukaan (esim. .srt, .fin.srt, .fih.srt*) .mp4 muotoiseen (Chromecastin vuoksi) videoon mukaan, ei poltettuna. Ottaako -i parametri jokerimerkkejä vastaan (eli menisi vain -i *.srt)? Ja vielä mov_text mukaan?

Tarkoitus olisi siis olla FlickFetchin latauskomento Areena TV:n kanssa.

Kokeilemalla selviäisi, mutta ketjussamme on nykyään ffmpegin tuntevia, joten ajattelisin että voisi löytyä kuin apteekin hyllyltä. :)

* Ei välitetä siitä, että osa on useinkin vain samoja, vievät tilaa kuitenkin vähän, niin tarpeellinen ainakin tulisi mukaan. Toisaalta olisi hyvä selvitä siitä ettei srt:tä ole, eli ehtolauseita peliin?

Flickfetch -ikkuna auki --> Asetukset --> Areena TV --> Tekstitykset ja valintamerkki niihin tekstityksiin, jotka haluat ladata. Mahdollisuus ladata vain osa tai laittaa valintamerkki kohtaan "lataa kaikki saatavilla olevat."
Itse tekisin näin.
 
Flickfetch -ikkuna auki --> Asetukset --> Areena TV --> Tekstitykset ja valintamerkki niihin tekstityksiin, jotka haluat ladata. Mahdollisuus ladata vain osa tai laittaa valintamerkki kohtaan "lataa kaikki saatavilla olevat."
Itse tekisin näin.
Kiitos, mutta luepa viestini, vaikka sekava onkin, niin ajatuksen kanssa. :)

Milläs komennolla ffmpeg lisäisi kaikki ladatut .srt:t mukaan (esim. .srt, .fin.srt, .fih.srt*) .mp4 muotoiseen (Chromecastin vuoksi) videoon mukaan, ei poltettuna.
 
Pahoittelen, luin vähän kiireellä. Mut kyllä tämän pitäisi olla mahdollista.

ffmpeg Documentation
FFmpeg Filters Documentation
SubStation Alpha - Wikipedia
FFmpeg Filters Documentation
Ehkäpä sieltä löytyy apu.
Kokeilemalla selviäisi, mutta ketjussamme on nykyään ffmpegin tuntevia, joten ajattelisin että voisi löytyä kuin apteekin hyllyltä. :)
Kysymys oli siksi, että joku osaava heittäisi valmiin vaihtoehdon. Minua voi syyttää laiskaksi, mutta jos itse tiedän johonkin ongelmaan suoran ratkaisun, niin kerron kyllä. :)
 
Kysymys oli siksi, että joku osaava heittäisi valmiin vaihtoehdon. Minua voi syyttää laiskaksi, mutta jos itse tiedän johonkin ongelmaan suoran ratkaisun, niin kerron kyllä. :)

En ole koittanut mutta toimisiko ihan sama komento kuin matroskallekin kunhan vaihtaa tiedostopäätteeksi mp4, josta ffmpeg päättelee output formaatin?

%download%
if exist "%name%.mkv" if exist "%name%.srt" ffmpeg -y -i "%name%.mkv" -i "%name%.srt" -c copy -metadata:s:s:0 language=fin -disposition:s:0 default "%name%_new.mkv"
if exist "%name%.flv" if exist "%name%.srt" ffmpeg -y -i "%name%.flv" -i "%name%.srt" -c copy -metadata:s:s:0 language=fin -disposition:s:0 default "%name%.mkv"
if exist "%name%.flv" if not exist "%name%.srt" ffmpeg -y -i "%name%.flv" -c copy "%name%.mkv"
if exist "%name%_new.mkv" del "%name%.mkv"
if exist "%name%_new.mkv" ren "%name%_new.mkv" "%nameonly%.mkv"
if exist "%name%.mkv" del "%name%.srt"
if exist "%name%.mkv" del "%name%.flv"
 
En ole koittanut mutta toimisiko ihan sama komento kuin matroskallekin kunhan vaihtaa tiedostopäätteeksi mp4, josta ffmpeg päättelee output formaatin?

%download%
if exist "%name%.mkv" if exist "%name%.srt" ffmpeg -y -i "%name%.mkv" -i "%name%.srt" -c copy -metadata:s:s:0 language=fin -disposition:s:0 default "%name%_new.mkv"
if exist "%name%.flv" if exist "%name%.srt" ffmpeg -y -i "%name%.flv" -i "%name%.srt" -c copy -metadata:s:s:0 language=fin -disposition:s:0 default "%name%.mkv"
if exist "%name%.flv" if not exist "%name%.srt" ffmpeg -y -i "%name%.flv" -c copy "%name%.mkv"
if exist "%name%_new.mkv" del "%name%.mkv"
if exist "%name%_new.mkv" ren "%name%_new.mkv" "%nameonly%.mkv"
if exist "%name%.mkv" del "%name%.srt"
if exist "%name%.mkv" del "%name%.flv"
Täytyy kokeilla. Onko nämä "-metadata:s:s:0 language=fin -disposition:s:0" välttämättömiä? Kun tarkoitus vain lisätä pakettiin mukaan, katsottaessa käyttäjä sitten valitsee haluamansa tekstityksen.

Meinaan kun jos olisi vain yksi tietty srt, niin tämä riittäisi komentojonoksi hommaan:
Koodi:
ffmpeg.exe -y -i "%name%.mkv" -i "%name%.srt" -vcodec copy -acodec copy -c:s mov_text "%name%.mp4"

Edit. No, pitää kokeilla tosiaan, kun aikaa on. Kiitos! :)
 
Viimeksi muokattu:
Täytyy kokeilla. Onko nämä "-metadata:s:s:0 language=fin -disposition:s:0" välttämättömiä? Kun tarkoitus vain lisätä pakettiin mukaan, katsottaessa käyttäjä sitten valitsee haluamansa tekstityksen.

Meinaan kun jos olisi vain yksi tietty srt, niin tämä riittäisi komentojonoksi hommaan:
Koodi:
ffmpeg.exe -y -i "%name%.mkv" -i "%name%.srt" -vcodec copy -acodec copy -c:s mov_text "%name%.mp4"
Juu kyllä se riittää. Ainoa ero .mkv-kääreeseen nähden on se, että subtitle koodekiksi joudutaan erikseen määrittelemään mov_text. mkv:n tapauksessa riittää -c copy eli "kopsaa kaikki vaan".

Mutta mutta. Miksi .mp4? Mainitsit chromecastin. Mutta tiedossa pitäisi olla, että chromecast ei ymmärrä erillisiä tekstiraitoja. Ihan sama minkälaisessa kääreessä raidat ovat, ei chromecast sitä käärettä näe. Jos tarkoitus on lähettää esim. VLC:stä videoita tekstiraitoineen chromecastille renderöitäviksi, niin ei onnistu. Asiasta oli täälläkin puhetta muutama viikko sitten.
 
Mutta mutta. Miksi .mp4? Mainitsit chromecastin. Mutta tiedossa pitäisi olla, että chromecast ei ymmärrä erillisiä tekstiraitoja.
Perhana, niinpä taitaa olla, on liian kauan siitä kun on tullut katseltua kuitenkaan Chromecastilla. Katselu käynnistetään tosin Androidin MX Playerillä (Solid Explorista suoraan, muista näemmä mitään enää), mutta samapa se varmaan (ja ne mitä joskus on tullut sitten lopulta Chromecastilla katsottua, niin on ollut poltetut tekstit).

Kiitän muistutuksesta (en ole lukenut kovinkaan ajatuksella tätä ketjua, kun täällä on nykyään vähän sitä sun tätä, hyödyllistäkin ;)).

Kerro nyt samantien saisiko mkv-kääryleeseen yhdellä komennolla kaikki löytyvät srt:t? Eli voisi käyttää vain jokerimerkkiä merkitsemään asiaa komentojonossa? Vaatinee jokun pattern_höpöpö jutun, mutta muuten jos tulee kuin apteekin hyllyltä, niin otan kiitollisna vastaan, kun on näin joulun aikakin.
(Joo, ihan vain talteen, ei näy ei)
 
Viimeksi muokattu:
Perhana, niinpä taitaa olla, on liian kauan siitä kun on tullut katseltua kuitenkaan Chromecastilla. Katselu käynnistetään tosin Androidin MX Playerillä (Solid Explorista suoraan, muista näemmä mitään enää), mutta samapa se varmaan (ja ne mitä joskus on tullut sitten lopulta Chromecastilla katsottua, niin on ollut poltetut tekstit).
Toki tekstit saadaan Chromecastilla näkyviin, jos on joku sovellus, joka ne tekstit kuvaan piirtää. Mutta minä en tiedä yhtään sellaista, jolle voi antaa videotiedoston ja tekstit ja joka tekee niistä tekstillisen videostreamin ja lähettää sen Chromecastille. VLC osaa tämän muuten, mutta tekstit jäävät pois. VideoStream-niminen Chrome-sovellus väittää osaavansa, mutta minä en ole saanut sitä toimimaan. Ja Chrome-selain kyllä osaa renderöidä paikallisia MP4- ja WebM-muotoisia videotiedostoja, ja lähettää näyttönsä sisällön Chromecastille ("tab casting"). Tästä saattaa olla peräisin ajatus, että Chromecast osaa nimenomaan MP4-videot. Mutta Chromen tuottama laatu on enintään välttävä, "Miracast-taso‌inen", eikä tekstejä tietenkään.

Mutta ei tehtävä mahdoton ole, kun vaan joku tekisi. Sitä odoteltaessa suositeltu ratkaisu on panna telkkarin kylkeen joku riittävän kyvykäs mediaplayeri, esimerkiksi Android TV + Kodi tai Elisaviihteen boksi, joka hakee ne videot jotenkin jostain, esimerkiksi DLNA-protokollalla tietokoneelta. Ja lisäksi sitten Chromecast. Jos Android TV on Googlen virallisesti siunaamaa mallia (esim. Xiaomi Mi Box), siinä saattaa olla sisäänrakennettuna Chromecast-toiminto, jolloin erillistä laitetta ei tarvita.
Kiitän muistutuksesta (en ole lukenut kovinkaan ajatuksella tätä ketjua, kun täällä on nykyään vähän sitä sun tätä, hyödyllistäkin ;)).
Niin, onhan se helpompi kysyä aina kun huomaa tietoa tarvitsevansa. Varmuuden vuoksi kirjoitin tuohon ylle vähän ylimääräistäkin.
Kerro nyt samantien saisiko mkv-kääryleeseen yhdellä komennolla kaikki löytyvät srt:t? Eli voisi käyttää vain jokerimerkkiä merkitsemään asiaa komentojonossa? Vaatinee jokun pattern_höpöpö jutun, mutta muuten jos tulee kuin apteekin hyllyltä, niin otan kiitollisna vastaan, kun on näin joulun aikakin.
(Joo, ihan vain talteen, ei näy ei)
Kun ei ffmpeg-ohjelma mitään jokerimerkkejä tunne, niin komentoriviä rakentavan ohjelman, esim. FlickFetchin, pitää asia hoitaa jollain tavoin. Tai sitten voi tekstitiedostojen liittämisen hoitaa jälkikäteen erillisenä työnä. En nyt rupea tästä esimerkkiä laatimaan. Vihjeenä kuitenkin, että ratkaisu ei ole mikään pattern_höpöhöpö, vaan ihan oikea pieni ohjelma/skripti, eikä niitä saa apteekista.
 
Tai sitten voi tekstitiedostojen liittämisen hoitaa jälkikäteen erillisenä työnä. En nyt rupea tästä esimerkkiä laatimaan. Vihjeenä kuitenkin, että ratkaisu ei ole mikään pattern_höpöhöpö, vaan ihan oikea pieni ohjelma/skripti, eikä niitä saa apteekista.
Jooh, antaapi olla. Kuten idea oli, että JOS olisi jollain ollut valmista, niin sen perään kysyin. Scripteistä/ohjelmoinnista on kokemusta (jo Amiga-ajoista lähtien), mutta kuten ehkä arvata saattaa ei nyt huvita paneutua asiaan. Kunhan nyt erehdyin kysymään.:dead:

Jos taas tuntuisi olevan halua vinoilla minun olevan laiska, niin se ei pidä paikkaansa, kirjoittelinhan kymmenisen vuotta kymmeniä ja taas kymmeniä kä-des-tä pitäen ohjeita eri aiheista (osa vielä ajantasaisia vieläkin vaikken enää päivitä) sekä eri foorumeilla avustaminen mukaan (Afterdawn, Muro lähinnä), jopa siinä määrin että aloin saamaa emailitse liikaa kysymyksiä ties mistä (ja jos satuin neuvomaan, kiitos harvemmin tuli). Että oman osani olen tehnyt, joten ajattelin että kaipa meikäläinenkin saa joskus kysyä. Että se siitä. Enpä kysele enempää.

Edit. Mutta kiitos jälleen seikkaperäisestä vastauksesta.:tup:
 
Viimeksi muokattu:
Jottei kenellekään jäisi paha mieli, niin tässä nyt kuitenkin pieni cmd-skripti tilanteeseen, jossa nykyhakemistossa on joukko mkv-tiedostoja ja niihin liittyviä srt-tiedostoja:
Koodi:
@echo off
setlocal enabledelayedexpansion
for %%f in (*.mkv) do (
    set rivi=ffmpeg -y -i "%%f"
    for %%g in ("%%~nf*".srt) do set rivi=!rivi! -i "%%g"
    set rivi=!rivi! -c copy "%%~nf-out.mkv"
    call !rivi!
)
endlocal
Ja sama Pythonilla:
Koodi:
import os
for mkv in [f for f in os.listdir() if f.endswith('.mkv')]:
    rivi = 'ffmpeg -y -i "%s"' % mkv
    name = mkv.split('.mkv')[0]
    for srt in [f for f in os.listdir() if f.endswith('.srt') and f.startswith(name)]:
        rivi += ' -i "%s"' % srt
    rivi += ' -c copy "%s"' % (name + '-out.mkv')
    os.system(rivi)
 
Viimeksi muokattu:
Kyllä minulla näyttää Videostream Chromecastilla .mkv:hen ympätyt tekstitykset.
Pitipä kaivaa laatikosta aito ja alkuperäinen Chromecast-pulikka. Ja sillä Videostream todellakin toimii, tekstit ja kaikki. Eikä tarvitse olla MP4. Hyvä niin. Adroid TV:n Google Castin kanssa sensijaan en ole saanut toimimaan. Myöskin Chromen Cast-toiminnolla on Android TV:n kanssa vaikeuksia.
 
Mitenkäs suomenkielisten ohjelmien tekstitys ruotsiksi?
Sekasin - Helt knäpp | Avsnitt 4 (Sekasin - Helt knäpp)
Areenasta katsomalla tuolle saa tekstityksen ruotsiksi, mutta flickfetch ei sitä hae.
Kyllä FF hakee ruotsinkieliset tekstit, kunhan asetuksissa on tätä pyydetty. Tosin videon ja tekstitiedoston nimi jää suomenkieliseksi. Versiossa 4.1.10.

Laturi-ohjelma hoitaa ruotsinkieliset nimet ja tekstit automaattisesti oikein, jos palveluosoitteena on arenan.yle.fi.
 
onpas kätevä ohjelma... Harmi ku meni dr who jaksot 1-5 ohi ja en ehtiny kattoo. Pitää muuta kautta hakee..
 
Varmaankin tiedoston koodaus ANSI/ASCII/UTF-8 tai rivinvaihdot Windows/Unix on pielessä. Noita pystyy vaihtamaan mm. astetta Notepadia paremmilla tekstieditoreilla kuten ilmaisella Notepad++:lla.

Itsellä entinen Samsungin yhdistelmälaite ei osannut näyttää UTF-8 teksti-tiedostoa oikein vaan se piti muuntaa Win-1252 muotoon. Tein sitä varten nopeasti pätkän, laitampa tähän jos joku vielä voisi tarvita, vaikka ei tässä mitään ihmeellistä ole. Mutta eipä tarvi editoreilla yksi kerallaan muuttaa. Iconv pitää olla asenettu (siis kopioitu) samaan hakemistoon.

@echo off
setlocal enableDelayedExpansion
for /f %%i in ('dir /b/d c:\ff_tmp\*.srt') do (
echo %%i
del c:\ff_tmp\tmpfile.srt
type %%i > c:\ff_tmp\tmpfile.srt
del %%i
iconv -f UTF-8 -t WINDOWS-1252 c:\ff_tmp\tmpfile.srt > c:\ff_tmp\%%i
)
del c:\ff_tmp\tmpfile.srt
pause
 
En ole koittanut mutta toimisiko ihan sama komento kuin matroskallekin kunhan vaihtaa tiedostopäätteeksi mp4, josta ffmpeg päättelee output formaatin?
Tätä muokkaamalla ja tarpeeksi toistoja (.srt, .fin.srt ja .fih.srt) niin sai sen mitä pyysin, epäselvästi ilmeisesti*, eli kaikki kulloiseen videoon kuuluvat srt:t tiedostoon sisään mukaan. Eihän se elegantein ole, mutta tarvittaessa ihan käytettävä. Kiitos. :)

* En pyytänyt kaikkiin löytyviin videoihin yhtä srt-tiedostoa, koska tämähän ajetaan latauksen jälkeen juuri tiettyyn videoon. Selitin tämän epäselvästi. Pahoittelut. Case closed.
 
Kun tämä tekstitiedostojen pakettiin liittäminen on viehättävä pieni koodaustehtävä, ja kun oli muutenkin tarvetta asiaan paneutua, niin värkkäsin skriptin:
Koodi:
@echo off
setlocal enabledelayedexpansion
md backup 2>nul
for %%f in (*.mkv) do (
    move /y "%%f" backup
    move /y "%%~nf*.srt" backup
    set inputs= -i backup\\"%%f"
    set maps= -map 0:v -map 0:a
    set codec= -c copy
    set meta=
    set i=0
    for %%x in (fin fih swe) do (
        set n=backup\\"%%~nf.%%x.srt"
        if exist !n! (
            set inputs=!inputs! -i !n!
            set meta=!meta! -metadata:s:s:!i! language=%%x
            set /a i=!i!+1
            set maps=!maps! -map !i!
        )
    )
    ffmpeg -y!inputs!!maps!!codec!!meta! "%%f"
)
endlocal
Tuo siis käsittelee nykyhakemiston kaikki mkv-paketit, liittää niihin samasta hakemistosta löytyvät .xxx.srt-tiedostot, ja siirtää ensin originaalit perustettavaan backup-alihakemistoon.

Mietin myös miten homma tehtäisiin FlickFetchin komentojonolla. Tehtävä vaikuttaa kuitenkin mahdottomalta, koska eihän se komentojonotulkki ole mikään oikea dos/windows-komentotulkki, vaikka hämäävästi käyttääkin samannäköistä syntaksia. Esimerkiksi set-komento ei tee mitään.

Tekstitiedostojen pakettiin muxaaminen pitäisi kyllä FlickFetchissä tehdä mahdolliseksi talon puolesta, valinnaisena siis. Parhaiten tämän tekee jo imurointivaiheessa.
 
Viimeksi muokattu:
Kun tämä tekstitiedostojen pakettiin liittäminen on viehättävä pieni koodaustehtävä, ja kun oli muutenkin tarvetta asiaan paneutua, niin värkkäsin skriptin:
Koodi:
@echo off
setlocal enabledelayedexpansion
md backup >nul
for %%f in (*.mkv) do (
    move /y "%%f" backup
    move /y "%%~nf*.srt" backup
    set inputs= -i backup\\"%%f"
    set maps= -map 0:v -map 0:a
    set codec= -c copy
    set meta=
    set i=0
    for %%x in (fin fih swe) do (
        set n=backup\\"%%~nf.%%x.srt"
        if exist !n! (
            set inputs=!inputs! -i !n!
            set meta=!meta! -metadata:s:s:!i! language=%%x
            set /a i=!i!+1
            set maps=!maps! -map !i!
        )
    )
    ffmpeg -y!inputs!!maps!!codec!!meta! "%%f"
)
endlocal
Tuo siis käsittelee nykyhakemiston kaikki mkv-paketit, liittää niihin samasta hakemistosta löytyvät .xxx.srt-tiedostot, ja siirtää ensin originaalit perustettavaan backup-alihakemistoon.

Mietin myös miten homma tehtäisiin FlickFetchin komentojonolla. Tehtävä vaikuttaa kuitenkin mahdottomalta, koska eihän se komentojonotulkki ole mikään oikea dos/windows-komentotulkki, vaikka hämäävästi käyttääkin samannäköistä syntaksia. Esimerkiksi set-komento ei tee mitään.

Tekstitiedostojen pakettiin muxaaminen pitäisi kyllä FlickFetchissä tehdä mahdolliseksi talon puolesta, valinnaisena siis. Parhaiten tämän tekee jo imurointivaiheessa.

Komentojono ajetaan rivi kerrallaan aina uudessa cmd-komentotulkissa, sen takia eri rivit eivät tiedä toisistaan mitään, ja esim. set-komento ei toimi (tai toimiihan se mutta vain yhden komentorivin sisällä). Skriptejä haluttaessa komentojonolle voi tarjoilla bat-tiedoston joka sisältää varsinaisen skriptin, joten sitä kautta mikä tahansa pitäisi onnistua.

Kuten aiemmin kävi ilmi, ffmpegin latauskomento ei jostain syystä hyväksy .srt-tiedoston liittämistä latausvaiheessa koska tiedostoa ei muka löydy. En vaan saa selville miksi näin käy, koska jos laitan latausikkunan kaivamaan tiedon srt-tiedostosta, se näyttää että ko. tiedosto löytyy levyltä oikean kokoisena ja kaiken tekstityksen sisältävänä jo ENNEN kuin ffmpeg:iä edes käynnistetään! Silti ffmpeg herjaa että srt-tiedostoa ei löydy.
 
Kuten aiemmin kävi ilmi, ffmpegin latauskomento ei jostain syystä hyväksy .srt-tiedoston liittämistä latausvaiheessa koska tiedostoa ei muka löydy. En vaan saa selville miksi näin käy, koska jos laitan latausikkunan kaivamaan tiedon srt-tiedostosta, se näyttää että ko. tiedosto löytyy levyltä oikean kokoisena ja kaiken tekstityksen sisältävänä jo ENNEN kuin ffmpeg:iä edes käynnistetään! Silti ffmpeg herjaa että srt-tiedostoa ei löydy.
Joo tästä oli puhetta, eikä selitystä siis vielä ole. Varmaa kuitenkin on, että ffmpeg on syytön, koska toisessa ympäristössä temppu kyllä onnistuu.
 
Joo tästä oli puhetta, eikä selitystä siis vielä ole. Varmaa kuitenkin on, että ffmpeg on syytön, koska toisessa ympäristössä temppu kyllä onnistuu.

FlickFetchin suorittaman komentorivin ffmpegin käynnistämiseksi kun kopioi cmd-ikkunaan ja suorittaa niin tekstityksen liittäminen toimii. Mutta sama komentorivi FlickFetchin käynnistämänä juuri ladatun .srt-tiedoston kanssa ei toimi. Kokeilin myös laittaa 10 sekunnin viiveen tekstityksen lataamisen päättymisen ja ffmpegin käynnistämisen väliin, ei vaikutusta.

Testasin myös vaihtaa FlickFetchin asetuksiin latausparametreiksi kiinteän vanhan srt-tiedoston:

Koodi:
-y -i "%link%" -i "X:\1.srt" -c copy "%name%.mkv"

Näin tekstityksen liittäminen onnistuu, kun ei käytetä ladattua tekstitystä. En saa nyt otetta tästä ongelmasta.
 
FlickFetchin suorittaman komentorivin ffmpegin käynnistämiseksi kun kopioi cmd-ikkunaan ja suorittaa niin tekstityksen liittäminen toimii. Mutta sama komentorivi FlickFetchin käynnistämänä juuri ladatun .srt-tiedoston kanssa ei toimi. Kokeilin myös laittaa 10 sekunnin viiveen tekstityksen lataamisen päättymisen ja ffmpegin käynnistämisen väliin, ei vaikutusta.

Testasin myös vaihtaa FlickFetchin asetuksiin latausparametreiksi kiinteän vanhan srt-tiedoston:

Koodi:
-y -i "%link%" -i "X:\1.srt" -c copy "%name%.mkv"

Näin tekstityksen liittäminen onnistuu, kun ei käytetä ladattua tekstitystä. En saa nyt otetta tästä ongelmasta.

Jaa selvisihän se. FF kaivaa noista latausparametreista ladattavan tiedoston päätteen regexillä. Sitä tarvitaan jotta saadaan latausikkunaan tieto ladattavan tiedoston koosta, ja ennen latausta tuo tiedosto poistetaan jos se on jo olemassa. Regex parsiikin vain tässä tapauksessa nyt tuon srt.tiedoston noista parametreista, ja poistaa sen latauksen alussa. Eli täytyy muuttaa regexiä niin että se käyttää parametreista viimeisenä löytyvää tiedostopäätettä ja hylkää .srt -päätteen muutenkin.
 
Komentojono ajetaan rivi kerrallaan aina uudessa cmd-komentotulkissa, sen takia eri rivit eivät tiedä toisistaan mitään, ja esim. set-komento ei toimi (tai toimiihan se mutta vain yhden komentorivin sisällä). Skriptejä haluttaessa komentojonolle voi tarjoilla bat-tiedoston joka sisältää varsinaisen skriptin, joten sitä kautta mikä tahansa pitäisi onnistua.

Sainhan minä sen lopulta toimimaan. Tällainen komentojono:
Koodi:
%download%
temppu.cmd "%name%.mkv"
ja tällainen temppu.cmd, sijoitettuna FlickFetchin asennushakemistoon:
Koodi:
@echo off
rem first arg %1 is fully qualified path name of the downloaded video
rem %~p1  is path (folder)
rem %~nx1 is file name with extension
rem %~n1  is file name only 
rem 
setlocal enabledelayedexpansion
cd %~p1
md backup 2>nul
move /y "%~nx1" backup
move /y "%~n1*.srt" backup
set inputs= -i backup\\"%~nx1"
set maps= -map 0:v -map 0:a
set codec= -c copy
set meta=
set i=0
for %%x in (fin fih swe) do (
    set n=backup\\"%~n1.%%x.srt"
    if exist !n! (
        set inputs=!inputs! -i !n!
        set meta=!meta! -metadata:s:s:!i! language=%%x
        set /a i=!i!+1
        set maps=!maps! -map !i!
    )
)
ffmpeg -y!inputs!!maps!!codec!!meta! "%~nx1"
endlocal
Tuloksena on siis lataushakemistossa videopaketti, johon on ympätty kaikki ladatut tekstitiedostot, joilla on kielitunnus. Se kielitunnukseton nimi.srt on oikeastaan ihan turha, sehän on sama kuin nimi.fin.srt. Kai.
 
Sainhan minä sen lopulta toimimaan. Tällainen komentojono:
Koodi:
%download%
temppu.cmd "%name%.mkv"
ja tällainen temppu.cmd, sijoitettuna FlickFetchin asennushakemistoon:
Koodi:
@echo off
rem first arg %1 is fully qualified path name of the downloaded video
rem %~p1  is path (folder)
rem %~nx1 is file name with extension
rem %~n1  is file name only
rem
setlocal enabledelayedexpansion
cd %~p1
md backup 2>nul
move /y "%~nx1" backup
move /y "%~n1*.srt" backup
set inputs= -i backup\\"%~nx1"
set maps= -map 0:v -map 0:a
set codec= -c copy
set meta=
set i=0
for %%x in (fin fih swe) do (
    set n=backup\\"%~n1.%%x.srt"
    if exist !n! (
        set inputs=!inputs! -i !n!
        set meta=!meta! -metadata:s:s:!i! language=%%x
        set /a i=!i!+1
        set maps=!maps! -map !i!
    )
)
ffmpeg -y!inputs!!maps!!codec!!meta! "%~nx1"
endlocal
Tuloksena on siis lataushakemistossa videopaketti, johon on ympätty kaikki ladatut tekstitiedostot, joilla on kielitunnus. Se kielitunnukseton nimi.srt on oikeastaan ihan turha, sehän on sama kuin nimi.fin.srt. Kai.

Kielitunnukseton on ns. oletustekstitys, joka voidaan valita listasta ruksittamalla. Ensimmäisestä löydetystä ruksitetusta tulee oletustekstitys, ja noiden järjestystä voidaan muuttaa ikkunan nuolinappuloilla, joten oletukseksi saa minkä tahansa tekstityksen. Kielitunnuksettoman voi myös jättää lataamatta kokonaan ottamalla ruksin pois oletuksesta, ja lataamalla pelkästään kaikki saatavilla olevat (kielitunnuksellisena). Oletukseenkin voidaan kyllä lisätä kielitunnus omalla ruksillaan.

upload_2018-12-13_22-0-57.png
 

Statistiikka

Viestiketjuista
258 410
Viestejä
4 490 278
Jäsenet
74 155
Uusin jäsen
Multitronic

Hinta.fi

Back
Ylös Bottom