62
|
Linux секция за начинаещи / Настройка на програми / Вграждане на субтитри
|
-: Sep 10, 2007, 18:37
|
Цитат (prowler @ Сеп. 10 2007,18:37) | Това "raw" не е проблем. Слага си субтитрите, но са маймунки. Кодирането е проблема, няма какво друго. Английски субтитри се вграждат перфектно.
Опитвай с който и да е епизод на някой сериал и български субтитри (cp1251). |
АЗ ти разправям че няма проблеми , затова ми дай твойте
системат ами от преди 2 г е същият линукс от който ти пиша сега - настолният ми въкъщи на моя личен PC ... '>
Debian unstable :-) rocks :-D haha '>
та ми дай твойте въпросни субтитри нарочни искам да са те..
И ето колегата горе виж -sub -subcp ? , аз минавах само с едно sub , но да трябва да имаш фонт, който да поддържа въпросняит енкодинг, ноако имаш субтитри докато ги плейваш като отделен файл ще можеш и да вгр. такива '>
едит:
ovc наистиан не трябвад е copy, но с raw ще правиш мнного голям файл '> :-)
edit:
mencoder -ovc raw -oac copy -sub test.sub -o test.avi Ruslana*.avi
test.sub преименувах си едни че мног дълго име cp1251 са нови субтитри от преди 2 дена изтеглих някакви
и работи на 6 :-)
|
|
|
63
|
Програмиране / Web development / проблем с РНР-то да чете и пише в серийния порт
|
-: Sep 10, 2007, 16:41
|
Какво всъщносто прави dio от версия 1.16 насам : dio_tcsetattr set-ва по подразбиране crtscts = ДА и ICANON = НЕ ! Примерен код | newtio.c_cflag = BAUD | CRTSCTS | DATABITS | STOPBITS | PARITYON | PARITY | CLOCAL | CREAD; /* пуска се CRTSCTS както виждаме а и също така освен Databits, Stopbits, paritybit се позволява recieve-а и "modem" control в/у порта , всичко точно*/ newtio.c_iflag = IGNPAR; /*игнорирай байтове с парити еррор */ newtio.c_oflag = 0; newtio.c_lflag = 0; /* ако вместо =0 е ICANON; щяхме да имаме каноничен режим ! */ newtio.c_cc[VMIN]=1; newtio.c_cc[VTIME]=0; tcflush(f->fd, TCIFLUSH); tcsetattr(f->fd,TCSANOW,&newtio);
|
т.е какво става , когато dio_open отвори порта го отваря с подразбиращи се termios -> настройки , който са crtscts on и icanon on, а АКО пуснете dio_tcsetattr ще махне icanon режима :-)
та затова се изисква LF и т.н защото dio_open отваря порта и по подразбиране той приема default_termios койт ое с icanon = on '> '>
НО (!'>
ако пуснете tcsetattr не би трябвало да сте в ICANON режим :-)
само ви трябва един ред
exec(stty -crtscts -F /dev/ttySx);
и сте готови to go '>
Така че цялата гимнастика горе с stty не е че лоша, но може да се ползва dio_tcsetattr, знам ли уж за прегледност '>
няма значение.
Това е. Защо всичко продължи толквоа до тук, защото при г-н Панов на машината имаше проблем при tx/rx броя байтове , несъответствие , в крайна сметка се оказа, че проблема не е вphp скрипта, не е в dio, не е в stty , ами в самата машина и/или дистро, той ще си разбере какво точно.
Но аз пък задълбах и изкарах тея неща и тествах на мойта машина :-)
|
|
|
64
|
Програмиране / Web development / проблем с РНР-то да чете и пише в серийния порт
|
-: Sep 10, 2007, 13:59
|
Вариант 2, която осигурява noLF / no icanon + 1:1 пращане на данните (да ви кажа raw е по-хубав варинат). т.е ако напишете test ще получите testA (скрипта добавя LF нарочно за да се види че не се имплентира/пипа/процессва от порта), скрипта казва изпратих 5 байта , очевидно е получил и 5 щом тестА '> след това cat /proc/tty/driver/serial казва точно +5 , +5 разлика и в tx , и rx Важно, тук не се прави настройка на скорост, брой дата битове, стоп, старт и прочие , parity, само маха LF и го прави rx/tx 1:1, нарочно за да е прегледноза тестове просто слагате връзка м/у 2 и 3 крак/пин на серийният порт за loopback, 5-ти крак няма какво да го пипамета така или иначе порта е един , масата е обща ;-) :-) Примерен код | <?php if(!empty($_POST['command_text'])) {
$dio_file_name = "/dev/ttyS0";
$dio_file_desc = dio_open($dio_file_name, O_RDWR | O_NDELAY | O_NOCTTY); dio_fcntl($dio_file_desc, F_SETFL, 0);
exec("stty -crtscts -ixon -ixoff -echo -icanon -F /dev/ttyS0");
$text = $_POST['command_text']."\x41"; $write_num = dio_write($dio_file_desc, $text); echo "Writing ...<br>";echo "".$write_num." bytes written.<br>";
echo "Try to read ...<br>";
$dio_read1 = dio_read($dio_file_desc, 256); echo "Read: ".$dio_read1;
dio_close($dio_file_desc);
} else { ?>
<form method = "post"> Enter Command: <input type = 'text' name = 'command_text' maxlength= '131' value = ""> <input type = "submit" name = "submit_button" value = "Go!"> </form> <?php } ?>
|
|
|
|
65
|
Linux секция за начинаещи / Настройка на програми / Вграждане на субтитри
|
-: Sep 10, 2007, 13:44
|
Всъщност да .. 1:1 copy едва ли , но все ПАК -SUB e вътрешна команда и може да копи 1:1 и после слаг отгоре, как да е , отдавна беше когато го правех това преди 2г. , но още си пазя скриптове си с командите на куп, трябва да ги потърся '> мм намерих си скирпответе с ралични варианти за кодиране и за vcd, svcd , обаче не и за субс, ще потърся още де. '>
|
|
|
66
|
Linux секция за начинаещи / Настройка на програми / Вграждане на субтитри
|
-: Sep 10, 2007, 10:08
|
Качи субтитрите някъде - дай линк; и аз ще пробвам да ги вградя и после ще ти кажа какви опции съм ползвал на mencoder-a '> :-) едит: сега забелязам , че си дал ovc raw :? това пък защо, доста съм убеден и по спомен , че трябва да си е copy и то , защото ти добавяш инфо към кадрите, но encoding-a/кодека си остава, а с този raw - в чист вид ... нещо не ми се връзва :?
|
|
|
67
|
Програмиране / Web development / проблем с РНР-то да чете и пише в серийния порт
|
-: Sep 09, 2007, 20:51
|
е да променливата държаща файловият дексриптор '> в бързината, но да ;-) едит: ок грешка , zend_parse_args 100% не , а при fetch-a има някакъв resourse destrouctor или е той, но не той прави free memory , или самият fetch иска LF :? което едва ли . значи преди това се указва тоя LF и се указва в момента , в който се вика dio-то , няма как иначе да е . не е нито parse args, нито fetch-a. сега ще гледам кода едит: значи хванах гов dio_read , dio_write не прави нищо по LF , поне това ми хареса изнесено е от dio_tcsetattr, той сетва канон режим въпроса е че или dio_open , или dio_fcntl го вика и сетва canon режим, а реда stty е преди това и затова не сработва ок, пък и ние като видяхме че не може без icanon , та raw не стоеше , ае извода след dio_open & dio_fcntl и dio_tcsetattr (ако ползвате, макар че същото прави и stty) пускате един stty да махне icanon режима, защото те правилн оразчитат на конф. на порта '> та кода Примерен код | <?php if(!empty($_POST['command_text'])) {
$dio_file_name = "/dev/ttyS0";
$dio_file_desc = dio_open($dio_file_name, O_RDWR | O_NDELAY | O_NOCTTY); dio_fcntl($dio_file_desc, F_SETFL, 0); /* изчакваме dio-то да си прави номерата и си сетваме каквот ни трябва, като raw сетва и ixon и ixoff на минус, но нарочно за прегледност ги слагам /оставям */ exec("stty 9600 parenb -parodd cs7 cstopb cread clocal -crtscts -ixon -ixoff -echo raw -F /dev/ttyS0");
$text = $_POST['command_text']."*".chr(13)."\x41"; $write_num = dio_write($dio_file_desc, $text); echo "Writing ...<br>";echo "".$write_num." bytes written.<br>";
echo "Try to read ...<br>";
$dio_read1 = dio_read($dio_file_desc, 256); echo "Read: ".$dio_read1;
dio_close($dio_file_desc);
} else { ?>
<form method = "post"> Enter Command: <input type = 'text' name = 'command_text' maxlength= '131' value = ""> <input type = "submit" name = "submit_button" value = "Go!"> </form> <?php } ?>
|
|
|
|
68
|
Linux секция за начинаещи / Настройка на програми / Вграждане на субтитри
|
-: Sep 09, 2007, 20:44
|
Ми ръчно съм си компилирал Mplayer/mencodre-< конфигурарал съм го ръчно , системата почти всичко сам , без autoconfig tools и за locales и за конзоалта кирилциата и предпоалгам добрата основа е дала този хубав резултат при мен '> та последно стана ли с тези опции дето ги даваш илине ?
|
|
|
69
|
Хумор, сатира и забава / Хумор / Кои проблеми в Линукс ви вбесявят?
|
-: Sep 09, 2007, 10:10
|
Така ми се спи, че Ви е бедна фантазия, ама ще се въползвам , че за 2 седмици не съм модератор и ще кажа , че *** ghost е прав хахахахах значи м/у gtk , curses , qt и още там кое друго GUI /lib в Х ... и аз съм имал проблеми с clipboard-a , нищо че пускам Xclip или отделан програма или на средата програмата за clipboard monitor , в крайна сметка това беше преди 1, не .... 2 години преди 2г имаше такива проблеми , сега е по-добре. Та ghost Прави си , но не напълно сега clipboard monitor-ите са дсота добре '> с коя Среда си :?
|
|
|
70
|
Програмиране / Web development / проблем с РНР-то да чете и пише в серийния порт
|
-: Sep 09, 2007, 04:08
|
Примерен код |
<?php if(!empty($_POST['command_text'])) {
$dio_file_name = "/dev/ttyS0";
/* така или иначе щем не щем ще работим в каноничен режим */ exec("stty 9600 parenb -parodd cs7 cstopb cread clocal -crtscts -ixon -ixoff -echo icanon -F /dev/ttyS0");
$dio_file_desc = dio_open($dio_file_name, O_RDWR | O_NDELAY | O_NOCTTY); dio_fcntl($dio_file_desc, F_SETFL, 0);
$text = $_POST['command_text']."*".chr(13); $write_num = dio_write($dio_file_desc, $text); echo "Writing ...<br>";echo "".$write_num." bytes written.<br>";
echo "Try to read ...<br>";
$dio_read1 = dio_read($dio_file_desc, 256); echo "Read: ".$dio_read1;
dio_close($dio_file_desc);
} else { ?>
<form method = "post"> Enter Command: <input type = 'text' name = 'command_text' maxlength= '131' value = ""> <input type = "submit" name = "submit_button" value = "Go!"> </form> <?php } ?>
|
Ако работите с външно у-во и не искате каноничен режим, но трябва LF за dio_Read че да се върне от извикването си и да даде каквото е прочел дотук и реално пратеното:
Примерен код |
<?php if(!empty($_POST['command_text'])) {
$dio_file_name = "/dev/ttyS0";
exec("stty 9600 parenb -parodd cs7 cstopb cread clocal -crtscts -ixon -ixoff -echo raw -F /dev/ttyS0");
$dio_file_desc = dio_open($dio_file_name, O_RDWR | O_NDELAY | O_NOCTTY); dio_fcntl($dio_file_desc, F_SETFL, 0);
echo "Try to read ...<br>";
/* пращаме LF че да се върне dio_read */ dio_write($fd,"\x41",1); $dio_read1 = dio_read($dio_file_desc, 256); echo "Read: ".$dio_read1;
dio_close($dio_file_desc);
} else { ?>
<form method = "post"> Enter Command: <input type = 'text' name = 'command_text' maxlength= '131' value = ""> <input type = "submit" name = "submit_button" value = "Go!"> </form> <?php } ?>
|
Ако имаше възможност да избираш spec. char за край или да кажеш да го няма поне , демек мин 2 вариант щях да кажа, браво php програмисти правили dio функц, обаче сега мога да кажа .. по-голема простотия ... скоро не бях виждла, но знаех че php е колкто добър толквоа и боза .. жалко
има даже "" -> което не е \0 , мили боже, колко мъка има по света, но нищо компромиси трябват, но и документация трябва, ама тоя мързел не убива а мъчи
днес мъчи мен и А.Панов , утре ... ще се върне при creator-a си , щото в природата енергия не се губи '>
маке му ... '> '>
изкрейзах , сори '> '> '>
|
|
|
71
|
Програмиране / Web development / проблем с РНР-то да чете и пише в серийния порт
|
-: Sep 08, 2007, 23:23
|
предположих аз , че става дума за конфигурацията , благодаря '> проблема е според мен решен , контролнтие линиии не бяха забранени , а не са loopback_нати и се чакат там разрешения (1/0) и т.н, та ... така '> после a_panov като си направи тестовете ще пише '> edit: освен този проблем се оказа че и един МОЖЕ БИ МЪРЗЕЛИВн PHP Програмист поЛУ И***Т с извинение ... НЕ СИ Е ПОПЪЛНИЛ ИНФОРМАЦИЯТА ДА КАЖЕ че dio_write и dio_read работят в каноничен режим та добре че един 'чужденстранен' колега го е драснал на Php.net в коментар че работи така.
таааа браво PHP.net < браво за подръжката железните сте, благодаря за 2-та часа за дето сте мързели ! благодаря ... и php нема такъв език
|
|
|
75
|
Програмиране / Web development / проблем с РНР-то да чете и пише в серийния порт
|
-: Sep 08, 2007, 14:28
|
Мда на мен това ми е идеята да ползвам отделна програма за комуникацията, която да върши работата и тя да се стартира, нещо от сорта един tool , който да си върши работата и друг който да го ползва и да си върши своята '> но ще видим благодаря за инфото. едит: @SUDO: да има възможнист за ограничаване и то доста '> '> и все пак sudo, setuid извън chroot за отдалечен достъп аз много тудно се съгласявам '> edit: трябва да обновя PHP-то си е че е 4-та версия, но не е 4.2.0 или от коя версия има подръжка за dio не знам. но факта е че го нямам на моя сървър. а излизам , довечера обаче ще се тества и все пак за 3-ти път погледнете си stty -F /dev/ttyS0 -a ! след вашият fopen '> ! за да видите как го отваряте '> защото ако има контролни линии, и те не са пресукани кактоп пин 2 с 3 ;-) аз не виждам вие да сетвате флагове за изкл. на контролни линии и последно , А те по подразбиране са вкл. успех ! '> '> edit: даже можете да викнете следното system("stty 57600 cread clocal echo -crtscts cs8 -parenb -parodd -ixon ixoff -F /dev/ttyS0"); след това след този ред dio_tcsetattr($dio_file_desc, array("baud" => 9600, "bits" => 7, "stop" => 2, "parity" => 2)); system("stty -F /dev/ttyS0 -a"); // ще е полезно /* трябва cstopb да е сетнато без - , и parenb да е без или това е odd, едно от двете трябва д е без - , също така трябва да е cs7 , а не cs8 , -crstcts отменя контролните линии , а ixon другите софт. мех. за flow контрол*/ edit: малко ме еяд че не мога дапробвам сега нещата, но не мога да дам от раз ъпдейт на php-то на сървъра :-) довечера, айде чао засега. пп: the.real.maniac@jabber.comedit: хмм версията ми е по-голяма от 4.2 , но dio функциите ги нямам така илииначе , странно, мм ще го гледам после.
|
|
|
|