abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 21:32 | Nasazení Linuxu

Canonical představuje nejnovější verzi chytré helmy DAQRI s Ubuntu pro rozšířenou realitu. K vidění bude příští týden v Barceloně na veletrhu Mobile World Congress 2017.

Ladislav Hagara | Komentářů: 0
včera 21:31 | Pozvánky

Pro zájemce o hlubší znalosti fungování operačních systémů připravila MFF UK nový předmět Pokročilé operační systémy, v rámci něhož se vystřídají přednášející nejen z řad pracovníků fakulty, ale dorazí také odborníci ze společností AVAST, Oracle, Red Hat a SUSE. Tento předmět volně navazuje na kurz Operační systémy ze zimního semestru, ale pokud máte praktické zkušenosti odjinud (například z přispívání do jádra Linuxu) a chcete si

… více »
Martin Děcký | Komentářů: 0
včera 21:30 | Pozvánky

Czech JBoss User Group Vás srdečně zve na setkání JBUG v Brně, které se koná ve středu 1. března 2017 v prostorách Fakulty Informatiky Masarykovy Univerzity v místnosti A318 od 18:00. Přednáší Tomáš Remeš a Matěj Novotný na téma CDI 2.0 - New and Noteworthy. Více informací na Facebooku a na Twitteru #jbugcz.

mjedlick | Komentářů: 0
20.2. 23:45 | Zajímavý software

Na blogu Qt bylo představeno Qt 3D Studio. Jedná se o produkt dosud známý pod názvem NVIDIA DRIVE™ Design Studio. NVIDIA jej věnovala Qt. Jedná se o několik set tisíc řádků zdrojového kódu. Qt 3D Studio bude stejně jako Qt k dispozici jak pod open source, tak pod komerční licencí. Ukázka práce s Qt 3D Studiem na YouTube.

Ladislav Hagara | Komentářů: 10
20.2. 17:50 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice slaví 5 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně byla založena ale až 17. února 2012.

Ladislav Hagara | Komentářů: 0
20.2. 12:50 | Komunita

Mozilla.cz informuje, že dosud experimentální funkce Page Shot z programu Firefox Test Pilot (zprávička) se stane součástí Firefoxu. Page Shot je nástroj pro vytváření snímků webových stránek. Umí výběr oblasti, prvku stránky (např. odstavce), nebo uložení snímku celé stránky. Snímky lze ukládat na disk nebo nahrávat na server Mozilly. Nedávno bylo oznámeno, že se součástí Firefoxu stane Activity Stream.

Ladislav Hagara | Komentářů: 32
20.2. 04:10 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 22
19.2. 15:55 | Zajímavý projekt

Vyzkoušet si příkazy a vyřešit několik úkolů lze na stránkách Commandline Challenge (CMD Challenge). Úkoly lze řešit různými způsoby, důležitý je výsledek. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

Ladislav Hagara | Komentářů: 18
18.2. 17:35 | Bezpečnostní upozornění

Německá Bundesnetzagentur (obdoba českého ČTU) zakázala na německém území prodej panenky Cayla kvůli „špionáži“ dětí. Tato elektronická hračka obsahuje mikrofon, reproduktor a kameru a bezdrátové komunikační rozhraní, pomocí kterého se hračka připojuje na servery výrobce. Takovýmto způsobem může hračka pomocí umělé inteligence „odpovídat“ na dotazy dítěte. Hlavní problém bude ale asi někde jinde, podle prvotních zpráv může

… více »
Petr Tomášek | Komentářů: 34
17.2. 15:30 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje, že bezpečnostní experti objevili nový typ malwaru, jenž cílí na open source e-commerce platformu Magento. Malware je zajímavý tím, že se jedná o první svého druhu, jehož kód zůstává skrytý v SQL databázi zasaženého e-shopu. Škodlivý kód je volán pomocí tzv. SQL trigerru, který je spouštěn při každém vytvoření objednávky v systému.

Ladislav Hagara | Komentářů: 6
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 679 hlasů
 Komentářů: 61, poslední včera 13:06
Rozcestník

Bilinguálne titulky v MPlayeri (skript)

30.7.2007 00:09 | Přečteno: 12719× | Výběrový blog | poslední úprava: 2.2.2013 10:05

Bash skript pre zlúčenie dvoch textových titulkov do jednoho. Výsledkom je súčasné zobrazenie 2 titulkov na spodku/vrchu okna prehrávača (podobnú funkciu má napr. PowerDVD, ale len pri dvd titulkoch). Opravy a vylepšenia sú vítané.

#!/bin/bash
# merge2ass.sh - script for merging two text-subtitles into an ass subtitle file
# version 0.9b, 02-feb-2013
# comments/criticism/praise to jose1711-gmail-com

# dependencies: mplayer (if your subtitle files need to be converted to srt), gnu utils

# thanks to:
#  - d.watzke for comments
#  - belisarivs for testing
#  - boris dušek <boris (dot) dusek - gmail - com> for testing/ideas
#  - swans100 - patch for milliseconds precision srt subs
#
# $1 is a movie file
# $2 is a subtitle1
# $3 is a subtitle2
# $4 is optional and could be "-pm" or "--play-movie" for instant watching of the movie

# example:
# merge2ass.sh movie.avi english.srt slovak.sub
# mplayer -noautosub -ass movie.avi -sub movie-bilingual.ass -subcp utf8
#
# or just
# merge2ass.sh movie.avi english.srt slovak.sub -pm
#
# or even only
# merge2ass.sh --detect movie.avi -pm
#
# ;-)
#
# release history:
# 0.8a (29. 7. 2007)
#  - initial public release
# 0.8.1a (30. 7. 2007)
#  - check_syntax fixed (d.watzke)
#  - multiline echo -> cat (d.watzke)
#  - removes temp files after conversion
# 0.8.2 (1. 8. 2007)
#  - check whether the input files exist prior to running MPlayer
#  - check for MPlayer binary
#  - help page added
#  - new optional CLI parameters: -pm (plays movie after conversion), --help
# 0.8.2.1 (2. 8. 2007)
#  - timestamp in output more compatible (reported by belisarivs)
# 0.9 (8. 8. 2007)
#  - performs a check for writable output
#  - check for MPlayer's support of ass/ssa if -pm is used
#  - pointers to subtitle files stored as arraysF
#  - autorecognition of subtitles based on MPlayer's -sub-fuzziness feature (--detect)
#  - output filename based on movie filename (+bilingual.ass)
#  - bash now mandatory (non-POSIX syntax used)
#  - flag -pm has a long alias (--play-movie)
# 0.9a (27. 4. 2012)
#  - added compatibility with SRT subtitles using milliseconds precision (thanks juan!)
# 0.9b (2. 2. 2013)
#  - define encoding in ssa header (thanks mathieuu!)
#
# some future thoughts:
#   - more optional flags (do_not_remove_temp_files, play_but_dont_delete_output_afterwards,dont_do
#     the_conversion_just_merging,output_file..)
#   - cleaner sed/awk code
#   - support for other players (xine, totem, kmplayer, vlc..)
#   - subtitle encoding detection based on enca (if present) - boris?
#
# docs:
#   - http://en.wikipedia.org/wiki/SubStation_Alpha
#   - http://www.perlfu.co.uk/projects/asa/ass-specs.doc
#
# THE STORY ENDS HERE
# set -x

# normally you do not want to see mplayer's error output
#mplayer_err=/dev/stderr
mplayer_err=/dev/null

arg_count="$#"
movie="$1"
sub[1]="$2"
sub[2]="$3"


show_help(){
cat << EOF
 ----------------------------------------------------------------------------------
|                                                                                  |
|  Merge2ass - a script for merging two text subtitles into ass/ssa subtitle file  |
|                                         author: jose1711 - gmail - com, 2007/08  |
 ----------------------------------------------------------------------------------

  Usage: merge2ass.sh [--help] [movie subtitle1 subtitle2] [-pm|--play-movie]

         or

	 merge2ass.sh --detect movie [-pm|--play-movie]

--help        show this help page and exit

--detect      try to detect subtitles using MPlayer's sub-fuzziness=1 flag

movie         movie file (anything that MPlayer recognizes)
subtitle[12]  file(s) containing text subtitles that MPlayer recognizes 

-pm           play movie immediately and remove the output after finishing
--play-movie

EOF
}

detect_subtitles(){
	while read -r line; do
		sub[++i]="$line"
	done < <(mplayer -sub-fuzziness 1 -frames 0 "$movie" 2>/dev/null | sed -n "s/^SUB: Added subtitle file ([0-9]*): \(.*\)$/\1/p")
	echo "$i subtitles were detected in total."
	echo "These two will be used:"
	echo "${sub[1]}"
	echo "${sub[2]}"
}

convert_subs(){
type mplayer || { echo "MPlayer not installed or binary not in path, please investigate. Exiting.."; exit 1; } 

echo "Converting the 1st subtitle file (${sub[1]}) to a time-based format..."
# slower but does not require the video file for conversion
# mplayer /dev/zero -rawvideo pal:fps=25 -demuxer rawvideo -vc null -vo null -noframedrop -benchmark -sub "$movie" -dumpsrtsub
mplayer -dumpsrtsub -noautosub -really-quiet -frames 0 -sub "${sub[1]}" "$movie" 2>>"$mplayer_err" && echo "Done"
mv dumpsub.srt "${sub[1]}-temp"
echo "Converting the 2nd subtitle file (${sub[2]}) to a time-based format..."
mplayer -dumpsrtsub -noautosub -really-quiet -frames 0 -sub "${sub[2]}" "$movie" 2>>"$mplayer_err" && echo "Done"
mv dumpsub.srt "${sub[2]}-temp"
}

generate_ssa_header(){
cat > "$output" << EOF
[Script Info]
Title:
Original Script: 
Original Translation:
Original Editing: 
Original Timing: 
Original Script Checking:
ScriptType: v4.00
Collisions: Normal
PlayResY: 1024
PlayDepth: 0
Timer: 100,0000

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: lang1style,Arial,64,65535,65535,65535,-2147483640,-1,0,1,3,0,6,30,30,30,0,0
Style: lang2style,Arial,64,15724527,15724527,15724527,4144959,0,0,1,1,2,2,5,5,30,0,0
Encoding:0

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text 
EOF
}

generate_ssa_dialogs(){
sed -e "/ --> /s/,/./g" "${sub[1]}-temp" | tr -d "\r" | awk 'BEGIN{ORS="";print " "} / --> /,/^$/ {ORS=" ";print} /^$/{print "\n"}' | sed -e "s/ --> /,/g" -e "s/^ \([^ ]*\) \(.*\)/Dialogue: Marked=0,\1,lang1style,Cher,0000,0000,0000,,\2/" -e "s/,00:/,0:/g" -e "s/\([:,]\)0\([0-9]\)/\1\2/g" -e "s/\([0-9]\)\(\.\)\([0-9]\)\([0-9]\)0\(,\)/\1\2\3\4\5/g" >>"$output"
sed -e "/ --> /s/,/./g" "${sub[2]}-temp" | tr -d "\r" | awk 'BEGIN{ORS="";print " "} / --> /,/^$/ {ORS=" ";print} /^$/{print "\n"}' | sed -e "s/ --> /,/g" -e "s/^ \([^ ]*\) \(.*\)/Dialogue: Marked=0,\1,lang2style,Cher,0000,0000,0000,,\2/" -e "s/,00:/,0:/g" -e "s/^ *//g" -e "s/\([:,]\)0\([0-9]\)/\1\2/g" -e "s/\([0-9]\)\(\.\)\([0-9]\)\([0-9]\)0\(,\)/\1\2\3\4\5/g" >>"$output"
}

remove_temp_files(){
rm "${sub[1]}-temp" "${sub[2]}-temp"
}

play_movie(){
	mplayer -ass 2>/dev/null >/dev/null || { echo "Too old MPlayer version, can't understand ASS/SSA subs. Install a newer version."; exit 1; }
	mplayer -really-quiet -fs "$movie" -sub "$output" -ass -subcp utf8 -noautosub
}

delete_output(){
	rm "$output"
}

eval last_arg='$'${arg_count}

if [ $arg_count -eq 0 ]; then
	show_help
	exit 0
fi

for param in $*
do
	if [ $param = "--help" ]; then show_help; exit 0; fi
done

if [ "$movie" = "--detect" ]; then
	movie="${sub[1]}"
	output="${movie%.*}-bilingual.ass"
	> "$output" #|| { echo "Can't write here! Exiting.." && echo 1; }
	detect_subtitles
fi

if [ ! -f "$movie" ]; then echo "Movie file ($movie) does not exist. Going back to shell.."; exit 1; fi
if [ ! -f "${sub[1]}" ]; then echo "Subtitle1 file (${sub[1]}) does not exist. Going back to shell.."; exit 1; fi
if [ ! -f "${sub[2]}" ]; then echo "Subtitle2 file (${sub[2]}) does not exist. Going back to shell.."; exit 1; fi

echo "Processing.."
# reset output
output="${movie%.*}-bilingual.ass"
> "$output" #|| { echo "Can't write here! Exiting.." && echo 1; }

convert_subs
generate_ssa_header
generate_ssa_dialogs
remove_temp_files

if [ "$last_arg" = "-pm" -o "$last_arg" = "--play-movie" ]; then
	play_movie
	delete_output
fi

exit 0

# set +x
       

Hodnocení: 100 %

        špatnédobré        

Obrázky

Bilinguálne titulky v MPlayeri (skript), obrázek 1

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

30.7.2007 04:55 Boris Dušek | skóre: 22 | blog: everything
Rozbalit Rozbalit vše Re: Bilinguálne titulky v MPlayeri (skript)
Díky, přesně po tomto jsem toužil!
vim ~/.emacs
David Watzke avatar 30.7.2007 07:52 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Bilinguálne titulky v MPlayeri (skript)
  • check_syntax() se nikdy neukončí, díky nesmyslnému použití subshellu. Použij if.
  • [[ $# -ne 3 ]] je rychlejší.
  • Místo toho velkýho echa raději použij cat.
    cat > soubor << EOF
    obsah souboru
    EOF
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
30.7.2007 10:41 disorder | blog: weblog | Bratislava
Rozbalit Rozbalit vše Re: Bilinguálne titulky v MPlayeri (skript)
cat abuse!

tak, tu to mas, odbornik
31.7.2007 11:23 ...
Rozbalit Rozbalit vše Re: Bilinguálne titulky v MPlayeri (skript)
jenom takova poznamka k tomu obrazku: betrayer je 'zradce', nikoli 'velky neznamy'...
jose17 avatar 1.8.2007 21:31 jose17 | skóre: 43 | blog: Joseho_blog | Košice/Nové Mesto nad Váhom
Rozbalit Rozbalit vše Re: Bilinguálne titulky v MPlayeri (skript)
jj, tejto anomálie v preklade som si tiež všimol. inak dobrý postreh ;-) jose
Ja vim, on vi, ty nano!
30.6.2008 11:32 milos
Rozbalit Rozbalit vše Re: Bilinguálne titulky v MPlayeri (skript)
existuje nieco podobne ako tento script pod windowsom? pouzivam smplayer a chcel by som tam dvoje titulky...
3.8.2010 23:33 Pavel
Rozbalit Rozbalit vše Re: Bilinguálne titulky v MPlayeri (skript)
Tenhle script již nefunguje (mplayer SVN-r1.0~rc3+svn20090426-4.4.3). Nemáš aktuálnější verzi?

Případně neumí tohle nativně libovolný linux přehrávač?
24.2.2011 02:31 Huy
Rozbalit Rozbalit vše Re: Bilinguálne titulky v MPlayeri (skript)
Thanks a lot for your script! This is exactly what I've been looking for to display 2 simultaneous subtitles inside MPlayer.

I had to modify your script to work on Mac OS X 10.6 (Snow Leopard). I had to change tr -d "\r" to LC_CTYPE=C tr -d "\r" Otherwise, I get the error "tr: Illegal byte sequence".

Also, the mplayer subtitle conversion doesn't seem to work completely with UTF-8 .srt input files. All the UTF-8 characters are changed into "¿" characters. If I convert manually using iconv to ISO-8859-1, then your script does work. I guess this has to do with the mplayer subtitle conversion, which for some reason doesn't like UTF-8.
7.1.2013 22:12 xkomczax | skóre: 48 | blog: proste_blog
Rozbalit Rozbalit vše Re: Bilinguálne titulky v MPlayeri (skript)
Taky jsem sháněl možnost, jak dostat do přehrávače videa dvoje titulky (u mne VLC), zkusil jsem dva pluginy (Subtitler (lite) a Dual Subtitling), bohužel, ani jeden mi se současným VLC 2 nefungoval :-( Nakonec jsem objevil službu (zdrojové kódy si může každý stáhnout), která spojí dva srt soubory do jednoho ass souboru, který ve VLC přehrává jeden titulek nahoře a druhý dole. Adresa je http://pas-bien.net/2srt2ass/
7.1.2013 22:15 xkomczax | skóre: 48 | blog: proste_blog
Rozbalit Rozbalit vše Re: Bilinguálne titulky v MPlayeri (skript)
Ještě doplním, že se jedná o (dva) php skripty a jsou vydány pod GNU GPL 2. Ke stažení zde

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.