транскод и сегмент с ffmpeg
похоже, что в ffmpeg теперь есть сегмент, или, по крайней мере, есть опция командной строки
-Ф-сегмент
в документации.
означает ли это, что я могу использовать ffmpeg для реального времени-перекодировать видео в h.264 и обеспечивают сегментированную совместимость с IOS .потоки m3u8, использующие только ffmpeg? если да, то какая команда перекодирует произвольный видеофайл в сегментированный h.264 AAC 640 x 480 поток ios совместимый поток?
2 ответов
абсолютно - Вы можете использовать -Ф-сегмент нарезать видео на куски и подавать его на устройства iOS. ffmpeg создаст файлы сегментов .ts, и вы можете обслуживать их с любым веб-сервером.
пример (с отключенным звуком) - 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
советы:
- убедитесь, что вы компилируете ffmpeg из самых последних git хранилище
- компилировать с кодек поддержкой libx264
- - карта 0 необходима
Как я скомпилировал FFMPEG-с дополнительной поддержкой rtmp, чтобы получить каналы от flash-медиа-сервер
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
Это найдено в документации ffmpeg: https://ffmpeg.org/ffmpeg-formats.html#segment_002c-stream_005fsegment_002c-ssegment