Enviar comando en el terminal de mac

Hola a todos,

Me estoy volviendo loco, tengo un programa que solo funciona con el terminal de mac, ffmbc, en el terminal le pongo el siguiente comando :

ffmbc -i 1080i60.mxf -vcodec mjpeg -an -s 360x288 -b 3M -aspect 4:3 output.mov

y funciona perfectamente, independientemente de la direccin dnde me encuentre en el terminal.
Estoy intentando hacer una interface para usar dicho programita pero no encuentro la manera de que me funcione.
Os enseo como lo estoy haciendo por si alguien me puede ayudar y sacarme de este punto muerto dnde me encuentro.

Dim s As new Shell?
s.Mode = 1?
If Not s.IsRunning Then?
s.execute " ffmbc -i 1080i60.mxf -vcodec mjpeg -an -s 360x288 -b 3M -aspect 4:3 output.mov"?
End If
If s.ErrorCode = 0 Then?
TextField1.Text = s.Result
?Else?
MsgBox("Error code: " + Str(s.ErrorCode))?
End If

He probado de poner algn path antes de ffmbc pero tampoco funciona, y muchas ms cosas y nada, me da error 127 o error 126.
Estoy un poco desesperado ya que pensaba que era algo bastante sencillo como en Visual Basic, pero no…

Gracias por adelantado y un saludo.

y que mensaje de error te da? o como es el comportamiento del programa?

A veces como programador se nos pasan las cosas bsicas y como no se que proceso de depuracin has seguido te sugiero esto:

  1. Determinar si es el comando o el cdigo el que tiene el error.
    a. Tratar con un comando bsico como ls y ver si ese si lo ejecuta
    b. tratar con un comando con parmetros
  2. Si 1.a y 1.b se dan bien, entonces tomar uno de los ejemplos de shell creados por XOJO y que vienen con el paquete y tratar de correr mi comando en el.

Si despus de 2 el problema persiste, intentara simplificar los parmetros hasta que funcione el comando ffmbc

Dame ms detalles a ver si se me ocurre algo.

Hola Andres, gracias por contestar.
Para empezar te dir que el resultado que produce este cdigo es:

bash: ffmbc: command not found

He probado comandos bsicos como ls y si funciona. Tambin he probado mi linea de comando en los ejemplos del paquete obteniendo el mismo resultado.
He probado tambin este cdigo:

If Not s.IsRunning Then
        s.execute "sh"
        s.WriteLine ("ffmbc -i 1080i60.mxf -vcodec mjpeg -an -s 360x288 -b 3M -aspect 4:3 output.mov")
        s.WriteLine (chr(13))
End If
If s.ErrorCode = 0 Then
        TextField1.Text = s.Result
Else
        MsgBox("Error code: " + Str(s.ErrorCode))

End If
Supongo que el error es que no se como se ejecuta un comando que no sea bsico de consola. Y tampoco he encontrado mucha informacin de como hacerlo.

Se te ocurre alguna cosa??
Gracias y un saludo.

Aaaah! claro

Mira, lo que tienes que hacer es lo siguiente:

  1. Determina donde est ffmbc en tu computador.
  2. copialo a la carpeta donde se ejecuta tu binario, o la carpeta donde estas poniendo el shell a ejecutar. Esto lo puedes determinar viendo que resultado te da el comando ls
  3. no hay 3, ya eso debe quedar listo

otra forma

  1. Determina la ubicacin de ffmbc en tu computador
  2. agrega ese directorio a tu path (http://forums.macrumors.com/showthread.php?t=407157)

Mmmm, el problema es que ffmbc no es un ejecutable, y no se puede localizar en un directorio. Lo he intentado mientras esta corriendo comprobando los procesos y no aparece por ningún sitio, supongo que utiliza varias librerías.
He pensado en hacer algún script y luego ejecutarlo desde RB, pero no se si será la solución. Mac es un poco nuevo para mi.
Espero que a alguien se le ocurra algo que me pueda ayudar.

Un saludo.

Poniendo el mismo mensaje en espaol e ingls a mi en particular me desespera, porque mantienes dos hilos de conversacin al mismo tiempo y obtienes respuestas diferentes a un mismo problema.

ffmbc si es un ejecutable, y lo que preguntas ahora en el otro foro es que el shell te da un error. Sin actualizar este hilo… no s si contestar en ingles (otro hilo de mensaje), espaol (aqu) o no hacerlo (por cross-posting y coherencia con el resto de gente que te ayuda aqu).

Tienes toda la razn Armando, ya he eliminado el hilo en ingls. Mi intencin no es confundir a la gente, si no obtener una ayuda desinteresada a mi problema.
La cuestin es que ando bastante perdido con este tema, pus lo que parece bastante sencillo de hacer no logro solucionarlo.
Hago un resumen de lo que estoy haciendo y los resultados obtenidos:

En el terminal pongo el siguiente comando de ffmbc:

ffmbc -i /Users/osx/Desktop/Proyecto_FFMBC/1080i60.mxf -vcodec mjpeg -an -s 360x288 -b 3M -aspect 4:3 /Users/osx/Desktop/Proyecto_FFMBC/output.mov

funciona ms o menos bien:

Mac-Pro-de-OS:~ osx$ ffmbc -i /Users/osx/Desktop/Proyecto_FFMBC/1080i60.mxf -vcodec mjpeg -an -s 360x288 -b 3M -aspect 4:3 /Users/osx/Desktop/Proyecto_FFMBC/output.mov
FFmbc version 0.7-rc8
Copyright © 2008-2013 Baptiste Coudurier and the FFmpeg developers
Input #0, mxf, from ‘/Users/osx/Desktop/Proyecto_FFMBC/1080i60.mxf’:
Metadata:
operational_pattern: Op1a
timecode: 00:00:00:00
Duration: 00:00:10.21, bitrate: 123258 kb/s
Stream #0.0(und): Video: h264 (High 4:2:2 Intra), yuv422p10le, 1920x1080i tff [PAR 1:1 DAR 16:9], 29.97 fps
Stream #0.1(und): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Stream #0.2(und): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Stream #0.3(und): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Stream #0.4(und): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Stream #0.5(und): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Stream #0.6(und): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Stream #0.7(und): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Stream #0.8(und): Audio: pcm_s24le, 48000 Hz, 1 channels, s32, 1152 kb/s
Incompatible pixel format ‘yuv422p10le’ for codec ‘mjpeg’, auto-selecting format ‘yuvj420p’
[scale @ 0x7fef71408920] w:1920 h:1080 fmt:yuv422p10le -> w:360 h:288 fmt:yuvj420p flags:0x4 il:0
Output #0, mov, to ‘/Users/osx/Desktop/Proyecto_FFMBC/output.mov’:
Metadata:
encoder: FFmbc 0.7
Stream #0.0(und): Video: mjpeg, yuvj420p, 360x288p [PAR 16:15 DAR 4:3], 3000 kb/s, 29.97 fps
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop, [?] for help
frame= 298 fps= 34 q=3.4 size= 3747kB time=00:00:09.94 bitrate=3087.3kbits/s eta=00:00:00.23
[mov @ 0x7fef7180ae00] replacing header in front, copying 3.75MB
frame= 306 fps= 34 q=3.4 Lsize= 3847kB time=00:00:10.21 bitrate=3086.3kbits/s
video:3845kB audio:0kB global headers:0kB muxing overhead 0.053393%
Mac-Pro-de-OS:~ osx$ 5

Mi intencin es hacer una interface grfica para este programa, dices que es un ejecutable, seguro que tendrs razn pero no he sabido localizarlo. Llevo poco tiempo trasteando con OS x y todava estoy muy verde, aunque da igual desde dnde lance el comando
porque funciona igual.
La cuestin es que quiero lanzar este comando desde una shell de Real Basic, y crea que la forma adecuada para hacerlo era la siguiente:

Dim s As new Shell?
s.Mode = 1?
If Not s.IsRunning Then?
s.execute “ffmbc -i /Users/osx/Desktop/Proyecto_FFMBC/1080i60.mxf -vcodec mjpeg -an -s 360x288 -b 3M -aspect 4:3 /Users/osx/Desktop/Proyecto_FFMBC/output.mov”?
End If
If s.ErrorCode = 0 Then?
TextField1.Text = s.Result
?Else?
MsgBox("Error code: " + Str(s.ErrorCode))?
End If

Pero esto es lo que obtengo:

ErrorCode 127
bash: ffmbc: command not found

Tambin lo he intentado con:

s.execute “sh”
s.WriteLine (“ffmbc -i /Users/osx/Desktop/Proyecto_FFMBC/1080i60.mxf -vcodec mjpeg -an -s 360x288 -b 3M -aspect 4:3 /Users/osx/Desktop/Proyecto_FFMBC/output.mov”)
s.WriteLine (chr(13))

De esta forma no obtengo ningn error, pero tampoco ningn resultado.

No se si estoy aplicando mal los comandos de la shell o estoy poniendo mal las direcciones. Tambin he probado haciendo un script y ejecutndolo desde el terminal funciona pero cuando lo hago desde RB me dice “ffmbc: command not found”.
He ledo en algunos posts que el terminal no se comporta de la misma manera que la shell ya que esta es una instancia, y que los paths tampoco son iguales, pero haciendo cambios no consigo dar con la solucin.

Espero que alguien me pueda hacer ver la luz.
Gracias y un saludo.

No lo tengo instalado en mi Mac (uso Mavericks). He visto que se puede instalar bajando los fuentes y compilando o bajando una versin compilada ya (desaconsejable, pero parece que compilar el cdigo llevar bastante ya que hay muchas dependencias).

Estoy completamente de acuerdo con Andrs Montoya en su mensaje. El shell de Xojo no encuentra en el path la carpeta donde se encuentra ffmbc. Luego si ffmbc tiene alguna pausa (veo esto: Press [q] to stop, [?] for help) ser otro problema a la hora de parsear los resultados que quieras.

De donde lo has bajado para instalarlo y poder mirar que puede ser?

Saludos

Hola Armando,
Primero tuve que instalar las “Command line tools for Xcode”.
Luego instalar “homebrew”:

http://brew.sh/
ir al final de la pag y copiar-pegar el comando en Terminal.

y finalmente ejecutar en Terminal primero:
brew doctor
y despus:
brew install ffmbc

Un saludo.

==> Summary
/usr/local/Cellar/ffmbc/0.7-rc8: 6 files, 13M, built in 112 seconds

Aqu es donde est instalado el ejecutable: /usr/local/Cellar/ffmbc/0.7-rc8/bin/ffmbc

He hecho un proyecto muy simple con un shell sincrono para mostrarte que funciona:

[code] Dim s As new Shell
s.Mode = 0

If Not s.IsRunning Then
s.Execute “/usr/local/Cellar/ffmbc/0.7-rc8/bin/ffmbc -h”

End If
If s.ErrorCode = 0 Then
MsgBox s.result

Else
MsgBox("Error code: " + Str(s.ErrorCode))

End If[/code]

Saludos
Amando

Excelente Armando.
Es exactamente la solucin de mi problema y al cual he dedicado tantas horas esta semana.
Gracias por la dedicacin, estar muy pendiente de este foro para seguir avanzando.
Que tengas un buen da y un saludo.

[quote=51515:@Ikerdos Ikerdos]Excelente Armando.
Es exactamente la solución de mi problema y al cual he dedicado tantas horas esta semana.
Gracias por la dedicación, estaré muy pendiente de este foro para seguir avanzando.
Que tengas un buen día y un saludo.[/quote]

Me alegro mucho que puedas continuar con tu proyecto. Para eso estamos aquí, para echarnos una mano los unos a los otros y poder hacerlo en nuestro estupendo idioma :slight_smile: