Подтвердить что ты не робот

Перекод и сегмент с ffmpeg

Похоже, что ffmpeg теперь имеет в нем сегмент, или, по крайней мере, есть опция командной строки

-f сегмент

в документации.

Означает ли это, что я могу использовать ffmpeg для передачи в реальном времени видео в h.264 и передавать сегментированные потоки .m3u8, совместимые с IOS, используя только ffmpeg? если да, то какая команда могла бы перекодировать произвольный видеофайл на сегментированный потоковый iOS-совместимый потоковый поток hac64 hac64 hoc64?

4b9b3361

Ответ 1

Абсолютно - вы можете использовать -f сегмент, чтобы нарезать видео на куски и подавать его на устройства 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 из последних
  • скомпилировать с кодеком libx264
  • -map 0 требуется

Как я скомпилировал FFMPEG - с дополнительной поддержкой rtmp для получения фидов из

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