2009-12-28 18 views
9

La aplicación para iPhone en la que estoy trabajando captura imágenes en serie dentro de un intervalo de tiempo definido por el usuario, estoy buscando una manera de combinar estas imágenes en videos codificados en H264. He hecho algunas investigaciones en Google, parece que tendré que usar algo como ffmpeg/mencoder en el iPhone. (También encontré a alguien portado ffmpeg a iPhone, ffmpeg4iPhone)Codificadores H264 distintos de ffmpeg x264

Sin embargo, encontré que x264 está bajo licencia GPL y necesito que abra mi proyecto si uso ffmpeg. También encontré que algunas personas sugirieron usar Ogg Theora, pero necesitaré portarlo al iPhone si lo uso. (Que no estoy seguro de cómo hacerlo ahora).

¿Hay alguna solución para esto? ¿Algunas ideas? Gracias.

+0

No desea utilizar ffmpeg, iOS ya admite directamente la escritura de datos h.264 a través de las clases AVFoundation. No son fáciles de usar, pero es mejor que ffmpeg, ya que no hay problemas de licencia y ffmpeg se ejecutará muy, muy lentamente, incluso si lo compiló. – MoDJ

Respuesta

8

que cree que está en un aprieto GPL-allí y tienen dos sugerencias:

  1. sólo seguir adelante y GPL su proyecto. No hay ninguna razón por la que no pueda vender software de código abierto, y el período de demora/penalización de la tienda de aplicaciones le dará un buen tiempo de espera para completar cualquier proyecto potencial con el código GPL. Su lugar en la tienda de iTunes, su motivación y cualquier marca es probablemente más valioso que el código fuente. Además, puedes hacer que otras personas corrijan errores para ti. Actualización: a partir de enero de 2011, GPL and App Store do not mix.

  2. Tenga la aplicación de iPhone cargue las imágenes sin procesar en un servidor y realice el procesamiento allí. De esta forma, no liberará y distribuirá el código FFmpeg y x264 y, por lo tanto, no está obligado a distribuirlo.

¡Buena suerte y háganos saber aquí si la publican!

+0

No puede poner el código GPL en la App Store. Sencillo. – damian

+0

@damain: Es un desarrollo reciente, enero de 2011. Y tampoco es un tema particularmente simple. (Google App Store GPL VLC.) Editaré la publicación para que refleje tanto, puede deshacer su downvote. : P –

+1

deshacer :-) como programador que ha publicado el código GPL en el pasado, soy exigente con la información errónea. – damian

1

Creo que solo podrá encontrar versiones comerciales de implementaciones x264 si no tiene la intención de usar ffmpeg (puede haber algunas otras versiones de código abierto pero de muy baja calidad). Además, debe tener en cuenta que si utiliza esos códecs y decide no usar los de plataforma/iPhone tendrá que pagar regalías debido a las patentes (creo que es aproximadamente 1 dólar por descarga).

Si esto todavía es asequible para usted, entonces creo que es posible que pueda encontrar una versión anterior de ffmpeg que fue LGPL. Puede usar esto en su código sin tener que abrir el proyecto completo. Solo necesita cambios de código abierto que pueda realizar en ffmpeg.

Espero que esto ayude!

+0

¡Gracias por la respuesta! Acabo de consultar el sitio de ffmpeg http://ffmpeg.org/legal.html, su versión actual está bajo licencia LGPL, pero utiliza varias partes opcionales bajo GPL. ¿El codificador h264 ffmepg utiliza un formato diferente a x264 y está bajo licencia LGPL? Como sé, x264 está bajo licencia GPL. – 0pcl

+1

Sí, ffmpeg está bajo LGPL y x264 está bajo GPL. FFmpeg usa su propio decodificador LGPL, sin embargo, para la codificación depende de x264. Entonces no puedes usarlo para una aplicación comercial. – Serafeim

2

Aparece ffmpeg ahora tiene soporte para "Openh264" de Cisco (BSD Fwiw) que codifica códec:

https://www.ffmpeg.org/ffmpeg-codecs.html#libopenh264

Fwiw Esto es lo que recibo de mi LGPL construcción:

ffmpeg.exe -codecs | grep h264 
... 
ffmpeg version n3.1.2 Copyright (c) 2000-2016 the FFmpeg developers 
DEV.LS h264     H.264/AVC/MPEG-4 AVC/MPEG-4 part 10 (decoders: h264 h264_qsv) (encoders: libopenh264 h264_nvenc h264_qsv nvenc nvenc_h264) 

que menciona algunos otros codificadores FWIW y FFmpeg podrían ser compatibles incluso con otros.

Cuestiones relacionadas