Open 68456gjp49586g opened 11 months ago
Testade, för mig så följer det med text, men den dyker inte upp även när jag väljer den. Kanske går att lösa manuellt med vtt länken 🤔
Förstår inte riktigt, välja text var? vtt-länk? Ja, i strömmat går det att välja "av"/"svenska" oberoende av språk. Att slå av/på text i mediaspelaren känner jag inte till. Jag använder VLC. I tidigare nedladdningar har alltid utrikisk text varit en del av videon, vilket syns i textens kanstskärpa och i bruset. Den texten var inte valbar utan alltid med. Jag tittar nu på en gammal nedladdning (dokumentär 2021) där språket växlar mellan svenska och flera andra språk. Den är bara textad till utrikiska. Svensk text kom inte med oavsett val av svensk text. Om jag tittar på samma strömmat (nu) är utrikisk text samma som tidigare (ligger i videon) medan den valbara svenska texten ligger utanpå, om den väljs, vilket syns på att den är skarpare med mindre pixlade konturer (ligger ovanpå videon?). Före 7/10 var det lika som nu med valbart "av"/"svenska", MEN jag fick alltid med textad utrikiska vilket jag inte får nu. Jag ger upp men hoppas på hjälp \G
Den tis 21 nov. 2023 kl 20:56 skrev Bub0 @.***>:
Testade, för mig så följer det med text, men den dyker inte upp även när jag väljer den. Kanske går att lösa manuellt med vtt länken 🤔
— Reply to this email directly, view it on GitHub https://github.com/stefansundin/privatkopiera/issues/197#issuecomment-1821589875, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASPIXAAGTINNMMJYIRAQVELYFUBOVAVCNFSM6AAAAAA7UNLIQ6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMRRGU4DSOBXGU . You are receiving this because you authored the thread.Message ID: @.***>
Problemet är att ffmpeg inte stödjer STYLE
-delen i vtt-filen. Så här börjar den som hör till Love Actually (på svtplay):
WEBVTT
STYLE
::cue {
color: #DFDFDF;
}
::cue(.huvudpratare) {
color: #00FFFF;
}
::cue(.ljud) {
color: #FF00FF;
}
::cue(.ljudskylt) {
color: #FF00FF;
}
::cue(.relivemark) {
color: #FF0000;
}
::cue(.sang) {
color: #00FF00;
}
e6d369ac-7198-419c-895f-768231bcd6a2
00:01:11.640 --> 00:01:16.800 align:left position:18%
<c.urfjarran><i>När jag deppar över världen tänker jag</i></c>
<c.urfjarran><i>på ankomsthallen på Heathrow.</i></c>
Det man behöver göra är att klippa bort STYLE
-delen så att endast detta återstår:
WEBVTT
e6d369ac-7198-419c-895f-768231bcd6a2
00:01:11.640 --> 00:01:16.800 align:left position:18%
<c.urfjarran><i>När jag deppar över världen tänker jag</i></c>
<c.urfjarran><i>på ankomsthallen på Heathrow.</i></c>
Endera laddar man ned vtt-filen:
curl "https://svt-vod-5d.akamaized.net/d0/se/20231204/a477aaeb-6b0d-4af0-b08a-96efb2d341fb/text/text-open.vtt" > "Love actually.vtt"
... och redigerar för hand, och ändrar sedan i ffmpeg-kommandot som Privatkopiera skapar så att:
ffmpeg -i "https://svt-vod-5d.akamaized.net/d0/se/20231204/a477aaeb-6b0d-4af0-b08a-96efb2d341fb/hls-video-avc-1920x1080p25-3094/hls-video-avc-1920x1080p25-3094.m3u8" -i "https://svt-vod-5d.akamaized.net/d0/se/20231204/a477aaeb-6b0d-4af0-b08a-96efb2d341fb/hls-audio-sv-aac-2ch-192/hls-audio-sv-aac-2ch-192.m3u8" -i "https://svt-vod-5d.akamaized.net/d0/se/20231204/a477aaeb-6b0d-4af0-b08a-96efb2d341fb/text/text-open.vtt" -vcodec copy -acodec copy "Love actually.mkv"
... istället blir:
ffmpeg -i "https://svt-vod-5d.akamaized.net/d0/se/20231204/a477aaeb-6b0d-4af0-b08a-96efb2d341fb/hls-video-avc-1920x1080p25-3094/hls-video-avc-1920x1080p25-3094.m3u8" -i "https://svt-vod-5d.akamaized.net/d0/se/20231204/a477aaeb-6b0d-4af0-b08a-96efb2d341fb/hls-audio-sv-aac-2ch-192/hls-audio-sv-aac-2ch-192.m3u8" -i "Love actually.vtt" -vcodec copy -acodec copy "Love actually.mkv"
... eller så filtrerar man på något sätt bort STYLE-delen. Mest precist (på Mac OS X) är "sed":
ffmpeg -i "https://svt-vod-5d.akamaized.net/d0/se/20231204/a477aaeb-6b0d-4af0-b08a-96efb2d341fb/hls-video-avc-1920x1080p25-3094/hls-video-avc-1920x1080p25-3094.m3u8" -i "https://svt-vod-5d.akamaized.net/d0/se/20231204/a477aaeb-6b0d-4af0-b08a-96efb2d341fb/hls-audio-sv-aac-2ch-192/hls-audio-sv-aac-2ch-192.m3u8" -i <(curl "https://svt-vod-5d.akamaized.net/d0/se/20231204/a477aaeb-6b0d-4af0-b08a-96efb2d341fb/text/text-open.vtt" | sed -e 's/^STYLE//g;s/^::cue.*//g;s/^ *color:.*//g;s/^}//g') -vcodec copy -acodec copy "Love actually.mkv"
... men jag har bara testat det på just Mac OS X. Gissningsvis är en "grep"-baserad lösning mer plattformsoberoende:
ffmpeg -i "https://svt-vod-5d.akamaized.net/d0/se/20231204/a477aaeb-6b0d-4af0-b08a-96efb2d341fb/hls-video-avc-1920x1080p25-3094/hls-video-avc-1920x1080p25-3094.m3u8" -i "https://svt-vod-5d.akamaized.net/d0/se/20231204/a477aaeb-6b0d-4af0-b08a-96efb2d341fb/hls-audio-sv-aac-2ch-192/hls-audio-sv-aac-2ch-192.m3u8" -i <(curl "https://svt-vod-5d.akamaized.net/d0/se/20231204/a477aaeb-6b0d-4af0-b08a-96efb2d341fb/text/text-open.vtt" | grep -v 'STYLE\|::cue\|color: #\|}') -vcodec copy -acodec copy "Love actually.mkv"
Har bara kört detta med Firefox, men jag ser ingen anledning till att det skulle bli annorlunda med t.ex. Chrome. /S
Mer om det här problemet står skrivet i #120.
Japp, det ser jag nu när du har länkat till den. Att man aldrig får vara först ... Jag tycker dock att min "lösning" är enklare eftersom det enda jag behöver göra är två smärre justeringar i det ffmpeg-kommando som Privatkopiera ger mig, och sedan kör jag det på precis samma sätt som förut. Det kanske till och med går att implementera i en ny version av plug in:en? /S
I v0.4.0 så kan du ändra på vilken FFmpeg-sökväg som Privatkopiera använder. Så du kan kanske ändra det till att köra ett skript istället för ffmpeg, och det skriptet kanske kan automatisera fixen du har.
För att testa detta så skrev jag ett sådant skript som verkar fungera.
Spara med namnet ffmpeg-privatkopiera.sh
:
#!/bin/bash -e
# Detta skript filtrerar argumenten som Privatkopiera försöker ge ffmpeg och arbetar runt ett problem i ffmpeg där vissa undertexter inte kan läsas korrekt.
# Obs: Läs och förstå skriptet nedanför innan du kör det. :)
args=()
for ((i=1; i<=$#; i++)); do
if [[ ${!i} == *".vtt" ]]; then
# Ladda ned vtt filen och ta bort skräp som ffmpeg inte förstår
fn=$(basename "${!i}")
curl "${!i}" | sed -e 's/^STYLE//g;s/^::cue.*//g;s/^ *color:.*//g;s/^}//g' > "$fn"
args+=("${fn}")
else
args+=("${!i}")
fi
done
set -x
ffmpeg "${args[@]}"
Gör filen körbar med chmod +x ffmpeg-privatkopiera.sh
och kör sedan den istället för ffmpeg
.
Som nämnt ovanför så kommer du kunna konfigurera vilken sökväg Privatkopiera använder för ffmpeg i v0.4.0, så du kan konfigurera den att vara ./ffmpeg-privatkopiera.sh
så ger Privatkopiera dig ett kommando som du kan köra direkt.
Skälet till att jag inte vill försöka implementera detta direkt i Privatkopiera är att det inte kommer fungera så bra på alla operativsystem. Och förhoppningsvis så fixas detta i ffmpeg så slipper vi hålla på med massa workarounds så här.
P.S. Använd Markdown för att formatera kodsnuttar. Jag uppdaterade din kommentar lite. https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github
Sedan 7/10, i år, försvann all text från SVT-play. Rubbet! Långfilmer, natur, dokumentärer, serier, allt. Det fungerar strömmat men texten kommer inte med i filen.