2009-12-28 16 views
9

L'app per iPhone in cui sto lavorando acquisisce immagini in serie entro determinati intervalli di tempo definiti dall'utente, sto cercando un modo per combinare queste immagini in video con codifica H264. Ho fatto qualche ricerca su Google, sembra che dovrò usare qualcosa come ffmpeg/mencoder su iPhone? (Anche trovato qualcuno portato ffmpeg per iPhone, ffmpeg4iPhone)H264 Encoder diverso da ffmpeg x264

Tuttavia, ho trovato che x264 è sotto licenza GPL, e mi impone di open source il mio progetto se uso ffmpeg. Inoltre, alcune persone hanno suggerito di utilizzare Ogg Theora, ma dovrò portarlo su iPhone se lo uso. (Che non sono sicuro di come farlo ora).

C'è qualche soluzione per questo? Qualche idea? Grazie.

+0

Non si desidera utilizzare ffmpeg, iOS supporta già direttamente la scrittura di dati h.264 tramite le classi AVFoundation. Non sono facili da usare, ma è meglio di ffmpeg dato che non ci sono problemi di licenza e ffmpeg potrebbe funzionare molto lentamente anche se è stato compilato. – MoDJ

risposta

8

Penso che tu sia in una GPL-bind lì e hanno due suggerimenti:

  1. solo andare avanti e GPL il progetto. Non vi è alcun motivo per cui non sia possibile vendere software open source e il periodo di ritardo/penalità del negozio app vi darà un buon tempo di anticipo rispetto a qualsiasi potenziale progetto di completamento con il codice GPL. Il tuo posto su iTunes Store, la tua motivazione e qualsiasi marchio è probabilmente più prezioso del codice sorgente. Inoltre, puoi far sì che altre persone correggano i bug per te. Aggiornamento: da gennaio 2011, GPL and App Store do not mix.

  2. L'app per iPhone carica le immagini non elaborate su un server e esegue l'elaborazione in tale data. In questo modo non stai rilasciando e distribuendo il codice FFmpeg e x264 e quindi non è necessario distribuirlo.

Buona fortuna e fateci sapere qui se lo fate pubblicare!

+0

Non è possibile inserire il codice GPL nell'App Store. Semplice. – damian

+0

@damain: si tratta di uno sviluppo recente, gennaio 2011. E nemmeno un argomento particolarmente semplice. (Google App Store GPL VLC.) Modificherò il post in modo che rifletta il più possibile, libera di annullare il tuo downvote. : P –

+1

annullato :-) come programmatore che ha rilasciato il codice GPL in passato, sono schizzinoso sulla disinformazione lì – damian

1

Credo che sarete in grado di trovare solo versioni commerciali di implementazioni x264 se non si intende utilizzare ffmpeg (potrebbero esistere alcune altre versioni opensource ma con qualità molto bassa). Inoltre, è necessario tenere presente che se si utilizzano questi codec e si decide di non utilizzare la piattaforma/iPhone, si dovranno pagare i diritti d'autore a causa dei brevetti (penso che siano circa 1 dollaro per download).

Se questo è ancora conveniente per te, quindi credo che potresti essere in grado di trovare una versione precedente di ffmpeg che era LGPL'ed. Puoi usare questo nel tuo codice senza dover aprire l'intero progetto. Hai solo bisogno di modifiche opensource che potresti fare a ffmpeg.

Spero che questo aiuti!

+0

Grazie per la risposta! Ho appena controllato il sito di ffmpeg http://ffmpeg.org/legal.html, la sua versione attuale è sotto licenza LGPL, ma utilizza diverse parti opzionali in GPL. Il codificatore h264 ffmepg utilizza diverso da x264 ed è sotto licenza LGPL? Come so, x264 è sotto licenza GPL. – 0pcl

+1

Sì, ffmpeg è sotto LGPL e x264 è in GPL. FFmpeg utilizza il proprio decodificatore LGPL, tuttavia per la codifica si basa su x264. Quindi non puoi usarlo per un'applicazione commerciale. – Serafeim

2

Appare ffmpeg ora ha il supporto per "openh264" di Cisco (BSD FWIW) codec di codifica:

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

FWIW Ecco quello che ottengo dalla mia LGPL costruzione:

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) 

che menziona alcuni altri codificatori FWIW e FFmpeg potrebbe supportare anche altri.

Problemi correlati