example - transcodificar y segmentar con ffmpeg
reconnect_delay_max ffmpeg (2)
Absolutamente, puedes usar el segmento -f para dividir el video en pedazos y servirlo en dispositivos con iOS. ffmpeg creará .ts de archivos de segmento y podrá servirlos con cualquier servidor web.
Ejemplo de trabajo (con sonido deshabilitado) - versión ffmpeg N-39494-g41a097a:
./ffmpeg -v 9 -loglevel 99 -re -i sourcefile.avi -an /
-c:v libx264 -b:v 128k -vpre ipod320 /
-flags -global_header -map 0 -f segment -segment_time 4 /
-segment_list test.m3u8 -segment_format mpegts stream%05d.ts
Consejos:
- asegúrese de compilar ffmpeg desde el repositorio más reciente de git
- compilar con códec libx264
- -map 0 es necesario
Cómo compilé FFMPEG, con soporte adicional de rtmp para obtener feeds de flash-media-server
export PKG_CONFIG_PATH="/usr/lib/pkgconfig/:../rtmpdump-2.3/librtmp"
./configure --enable-librtmp --enable-libx264 /
--libdir=''../x264/:/usr/local/lib:../rtmpdump-2.3'' /
--enable-gpl --enable-pthreads --enable-libvpx /
--disable-ffplay --disable-ffserver --disable-shared --enable-debug
Parece que ffmpeg ahora tiene un segmentador, o al menos hay una opción de línea de comando
-f segmento
en la documentación.
¿Significa esto que puedo usar ffmpeg para transcodificar en tiempo real un video en h.264 y ofrecer streams .m3u8 compatibles con IOS segmentados usando solo ffmpeg? en caso afirmativo, ¿cuál sería el comando para transcodificar un archivo de video arbitrario a una secuencia compatible con stream ios h.264 aac 640 x 480?
Esto se encuentra en la documentación de ffmpeg: https://ffmpeg.org/ffmpeg-formats.html#segment_002c-stream_005fsegment_002c-ssegment