Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#5561
Cita de: franfis en  4 Marzo 2015, 17:01 PMDe que dependería elegir uno de 128, 192, 320 ?

De la calidad de la fuente de origen, por supuesto.

Si la pista de audio contenida en el stream del video tiene un bitrate medio de 128 Kbps, entonces no consigues ninguna mejora auditiva al re-codoficar ese audio a un bitrate mayor cómo sería 320 Kbps.

Puedes comprobar el bitrate de la pista utilizando aplicaciones como MediaInfo (aunque personalmente te recomiendo utilizar la implementación MediaInfo Lite por su integración en el SO y la simplitud de la interfáz).




De todas formas, simplemente puedes demuxear (extraer) la pista de audio, sin necesidad de re-codificarla.

Para llevar a cado el demuxing, puedes utilizar la aplicación commandline FFMPEG, o AviDemux si prefieres una GUI.

Te muestro un simple script que desarrollé, el cual integré en el menú contextual de archivos de video para una sencilla extracción mediante FFMPEG (el código necesita también la aplicación MediaInfo.exe en su versión commandline)

FFMPEG.DemuxAudio.cmd
Código (dos) [Seleccionar]
@Echo OFF & CHCP 1252 >NUL & Title FFMPEG Audio Demuxer Tool by Elektro

Set "Format="
Set "Profile="

PUSHD "%~dp0MediaInfo"
For /F "Tokens=*" %%# in ('mediainfo.exe "%~1" "--Inform=Audio;%%CodecID/Hint%%"') Do (Set "Format=%%#")

If "%FORMAT%" EQU "" (
For /F "Tokens=*" %%# in ('mediainfo.exe "%~1" "--Inform=Audio;%%Format%%"') Do (Set "Format=%%#")
)

For /F "Tokens=*" %%# in ('mediainfo.exe "%~1" "--Inform=Audio;%%Format_Profile%%"') Do (Set "Profile=%%#")
POPD

If /I "%FORMAT% %Profile%" EQU "MPEG Audio Layer 1" (Set "Format=mp1")
If /I "%FORMAT% %Profile%" EQU "MPEG Audio Layer 2" (Set "Format=mp2")
If /I "%FORMAT% %Profile%" EQU "MPEG Audio Layer 3" (Set "Format=mp3")
If /I "%FORMAT% %Profile%" EQU "MPEG Audio Layer 4" (Set "Format=mp4")
If /I "%FORMAT%" EQU "AC-3"     (Set "Format=ac3")
If /I "%FORMAT%" EQU "Vorbis"   (Set "Format=ogg")

"%~dp0ffmpeg.exe" -loglevel info -i "%~1" -acodec copy -vn "%~n1.%FORMAT%"

If %ERRORLEVEL% EQU 0 (
Echo+
Echo: Audio extraction completed successfully.    | MORE | MORE
Echo: Video: "%~1"                                | MORE
Echo: Audio: "%~n1.%FORMAT%"                      | MORE
Timeout /T 10
Exit /B 0
) ELSE (
Color C
Echo+
Echo: Audio extraction completed with errors.     | MORE | MORE
Echo: Video: "%~1"                                | MORE
Echo: Audio: "%~n1.%FORMAT%"                      | MORE
Pause
Exit /B 1
)


Nota:
Aunque no veas ninguna condicional para identificar ciertos formatos como "aac", están soportados.

Modo de empleo, en consola:
"FFMPEG.DemuxAudio.cmd" "C:\Ruta del archivo.webm"

Saludos
#5562
También hay que tener en cuenta que un gran porcentaje de aplicaciones recurren al motor OCR Tesseract, que fue y seguramente sigue siendo la solución open-source más extendida universálmente (al ser la mejor opción gratuita), y se basan en los algoritmos que éste utiliza, pero existen otros OCR más sofisticados que puedes encontrar en aplicaciones/librerías comerciales.

EDITO: Y también se debe tener en cuenta que, si el algoritmo OCR y/o aplicación lo permite, se debe especificar el lenguaje de origen del texto a reconocer para aumentar la probabilidad de éxito de la conversión, pues no es lo mismo utilizar los patrones del lenguaje Inglés, que del Castellano.

Cita de: Orb en 24 Febrero 2015, 21:00 PMexiste algún método por el cual de por ejemplo , si le saco una foto a la libreta de mi cuaderno , poder pasar todo lo que se visualiza en esa imagen a texto plano , siempre y cuando sea perfectamente visualizable y entendible

Perfectamente visualizable y entendible es altamente improbable, pues hay que comprender que siempre existirá un margen de error en la traducción, margen que aumentará por la cantidad total de texto-en-imagen que quieras convertir a texto plano y otros factores que favorecerán o desfavorecerán al reconocimiento de texto, debido a la propia naturaleza del ser humano por el amplio abanico existente en la escritura a mano (hand-writting) y las variaciones personales de cada individuo, el reconocimiento resulta complejo para "una máquina" que está limitada por la lógica empleada de un algoritmo de reconocimiento óptico de texto (OCR) en concreto.

Saludos!
#5563
Cita de: Guillito en  4 Marzo 2015, 04:19 AM
Unable to cast object of type 'System.Web.UI.WebControls.ListItem' to type 'System.IConvertible'.

Aquí, en:

ViewState["idNombre"] = Convert.ToInt32(currentItem);

en (currentItem), el valor del mismo es (con punto de interrupcion) el Nombre propiamente dicho (o sea, la palabra del Nombre) y no su Id en la Tabla de donde es llamado, que es lo que quiero obtener para que me cargue en el ViewState (el Id de la Tabla de ese Ítem seleccionado).......

Creo que entendí mal lo que dijiste, pensé que el valor del item (currentItem) contendría un dígito, y no una cadena con "un nombre" (obviamente por eso no funciona la conversión a Integer, por que no es un número), pero tú lo que quieres obtener es el índice de ese item, no el contenido del item, bien, me queda claro.

Cómo ya te dije, no manejo ASP.Net, pero los controles de Framework suelen tener métodos/propiedades para facilitar tareas de indexación cómo esa y no es dificil averiguar el cómo,
lee la documentación de la propiedad 'SelectedIndex', que devuelve el índice del item seleccionado:
https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.dropdownlist.selectedindex%28v=vs.110%29.aspx

Por ende, esto debería funcionarte:

Código (csharp) [Seleccionar]
// ListItem currentItem = ((DropDownList)sender).SelectedItem;
ListItem currentIndex = ((DropDownList)sender).SelectedIndex;
   
ViewState["idNombre"] = currentIndex;


Saludos
#5564
Si no he entendido mal, tienes una colección de números cómo esta:
Código (vbnet) [Seleccionar]
Dim collection As IEnumerable(Of Integer) = Enumerable.Range(1, 99)

Y quieres partirlo en colecciones de 4 elementos cada una:
Código (vbnet) [Seleccionar]
Dim parts As Integer = 4

Pues, cómo siempre te digo, usa LINQ:
Código (vbnet) [Seleccionar]

Dim result As IEnumerable(Of IEnumerable(Of Integer)) =
   From index As Integer
    In Enumerable.Range(0, CInt(Math.Ceiling(collection.Count() / parts)))
   Select collection.Skip(index * parts).Take(parts)


Saludos
#5565
Scripting / Re: Duda script BATCH
4 Marzo 2015, 06:04 AM
Cita de: simii en  4 Marzo 2015, 00:04 AMComo podría hacerlo?

Utilizando los modificadores de las variables de For.

Ejemplo:
@Echo OFF & SetLocal EnableDelayedExpansion

For /D /R "C:\Directorio" %%# in ("*") Do (

Set /A "count+=1"
Set "dirName!count!=%%~n#"
Set "dirPath!count!=%%#"

Call Echo [dirName!count!] %%dirName!count!%%
Call Echo [dirPath!count!] %%dirPath!count!%%
Echo+

)

Pause&Exit /B 0


Output:
[dirName1] Carpeta 1
[dirPath1] C:\Directorio\Carpeta 1

[dirName2] Carpeta 2
[dirPath2] C:\Directorio\Carpeta 2

[dirName3] Carpeta 3
[dirPath3] C:\Directorio\Carpeta 3

Presione una tecla para continuar . . .


Saludos
#5566
La lista de directorios que itera el For /D /R se va actualizando por cada nuevo directorio que encuentra (es decir, por cada subdirectorio que creas) y resulta en una recursividad indeseada, debes utilizar otro tipo de búcle For /F o ForFiles.

El tema de la herencia de permisos para ser sinceros no lo tengo claro, pero si no recuerdo mal Windows trabaja esos aspectos de forma automatizada, tanto el propietario cómo los permisos de un sub-directorio se heredan por si solos al crear dicho sub-directorio sin necesidad de llevar a cabo asignaciones manuales, de todas formas si me estoy equivocando puedes asignarle los permisos que quieras a las carpetas creadas, claro está.

Código (dos) [Seleccionar]
@Echo OFF

Set "folderName=Nueva Carpeta"

For /F "Tokens=* Delims=" %%# in ('Dir /B /S /AD "*"') Do (
Echo %%~#
Echo    [+] %%~#\%folderName%
Echo+
(MKDir "%%~#\%folderName%")2>NUL
)

Pause&Exit /B 0


Saludos
#5567
Cita de: cr5man en  3 Marzo 2015, 16:48 PMdice disponer de tecnología para detectar usos indebidos, y dado que accedo con mi nombre de usuario y mis datos personales a la plataforma, no he querido hacer esto por si acaso. ¿Qué me recomendáis? Gracias

Cita de: cr5man en  3 Marzo 2015, 19:00 PMla cuestión es si pueden tener un programa o algo que detecte que hago las capturas... quisiera hacerlas sin que me digan nada claro...

Estoy seguro que con "detectar usos indebidos" no se están refiriendo a capturas de pantalla,
no temas, de todas formas no pueden detectarlo.

Supongo que estás bajo Windows, y la única 'tecnología para detectar usos indebidos' que podría tener dicha aplicación para 'detectar' capturas de pantalla sería un hook para escuchar las llamadas a las funciones de la API de Windows que se suelen utilizar para capturar regiones de la pantalla (CreateDC, etc...), pero eso sería una inmensa tontería por que miles de aplicaciones de distintas temáticas usan dichas funciones de la WinAPI y no siempre es con fines de crear capturas de pantalla, por ende a parte de ser algo muy tedioso no creo que puedan saberlo con certeza y solo por intentar detectarlo con algun procedimiento de monitoreo en el lado del end-user creo que ya estarían violando tu intimidad y la ley, cómo ya dije estoy seguro que con "detectar usos indebidos" no se están refiriendo a capturas de pantalla, ellos pueden avisarte de que no está permitido hacer capturas de pantalla y te pueden decir que no hagas, pero de ahí a detectarlo...

Saludos!
#5568
Cita de: darky666 en  3 Marzo 2015, 16:58 PM
gracias amigo es bueno ver criticas a mi codigo
si nadie me critica o me aconseja nunca podre cambiar rapido
definitivamente estructuraste mejor el codigo que como yo lo tenia

a veces puedo resultar un poco borde o cascarabias (inconscientemente pretendo que todo el mundo haga las cosas dentro de un margen que yo considere 'bien hecho' xD) pero no me lo tengas muy en cuenta, espero que darte cuenta de esos pequeños fallos en el source te ayude a optimizar el código y/o aprender algo más que no supieras.


Cita de: darky666 en  3 Marzo 2015, 16:58 PMigual yo veo que te la rifas bien fuerte programando yo me pregunto si en una empresa te exigen programar tan rapido como tu?

claro para una empresa mientras mas rapido mejor (se ahorran dinero y les das mas productividad)

pero realmente eso exige una empresa?
asi de rapido programa el programador promedio? o masomenos

yo supongo que alguien recien salido de la universidad no programa tan rapido

he visto videos de las practicas que hacen los que estan estudiando en la universidad y apenas saben que hacer (no todos aclaro)

¿A que te refieres con "rápido"?, si te parecí rápido en analizar el source y escribir unas cuantas lineas de código fue simplemente porque estoy habituado a manejar el lenguaje, y cuando estás habituado la comprensión y el desarrollo de cosas básicas es tan rápido como parpadear, no soy el único al que le pasa, vaya xD.

Por si te sirve de algo saberlo, conocer y saber manejar adecuadamente las características de la IDE de VisualStudio (ej: auto-completado) aumenta considerablemente el rendimiento (disminuye el tiempo de escritura),
y si el código lo hubiese elaborado para el desarrollo de una aplicación mía, entonces me habría tomado más tiempo, porque cuidaría mucho más ciertos detalles que no tengo en cuenta a la hora de publicar códigos que son solo para resolver problemas o dudas especificas.

Sobre los requisitos de las empresas, no puedo resolver tu duda con certeza porque en las empresas que he trabajado mi oficio no era desarrollar software ni tampoco estaban relacionadas con eso, no he tenido esa suerte ya que mi aprendizaje fue auto-didacta (y sigue siendo, que en .Net cada día se aprende algo nuevo), pero obviamente imagino que en las empresas dedicadas a esto, evaluarán y tendrán muy en cuenta el rendimiento de sus trabajadores, cómo el tiempo de entrega de los proyectos, del mismo modo que los detalles de elaboración del código.

Un saludo!
#5569
Software / Re: 16 razones para no usar Chrome
3 Marzo 2015, 15:30 PM
Cita de: MCKSys Argentina en  3 Marzo 2015, 15:25 PMUso Firefox Nightly porque es de 64 bits. Se rompe cada tanto (no cosas graves, hasta ahora), pero avisas y lo fixean en el día.

La última release que instalé de FF-Nightly hará hace 2 años, pero no me gustó porque carecía de compatibilidad con la mayoría de extensiones que yo utilizaba (y sigo utilizando) en el Firefox normal, pero no se, quizás hayan mejorado mucho en ese aspecto desde entonces, tú que estás utilizando una versión actual lo sabrás mejor que yo :P, si es full-compatible con las extensiones de Firefox normal me lo volvería a instalar ya mismo xD.

Saludos!
#5570
Software / Re: 16 razones para no usar Chrome
3 Marzo 2015, 15:18 PM
Yo más bien diría que lo de tu imagen son 16 razones por las que SI usar Chrome (y lo digo como un firefox-lover que soy, no utilizo chrome solo porque estoy mal acostumbrado a la zorrita).

Chrome trabaja practicamente todas las características de la aplicación, en paralelo, creando un proceso separado por cada extensión y pestaña activa (de diferentes dominios) y el renderizador, para aumentar el tiempo de respuesta y de paso evitar cuelgues en la UI de Chrome debido a un mal funcionamiento en cualquiera de sus características primarias o de terceros.

Si la aplicación está desarrollada de esa manera es por esas buenas razones, porque seguramente sea la manera más eficiente de exprimir el potencial y el rendimiento de un navegador (Google sabe lo que se hace), por desgracia a mi querido firefox de 32 Bits aun le queda mucho que aprender.

¿Qué consume muchos recursos de memória?, pues si, pero las características más avanzadas siempre requerirán un potencial mayor igual que por ejemplo instalar una nueva versión de Windows, sabemos que hay que pagar un precio justificado,
de todas formas, puedes iniciar el proceso de chrome utilizando el parámetro "–process-per-site", lo que reducirá la cantidad de procesos a 1 por página web (dentro de un mismo dominio) y esí evitarás que se generen procesos adicionales que requieran más RAM (en su totalidad).

Saludos!