Estou gravando um streaming HLS e gostaria de salvar em um FLV Container.
O cmd do meu ffmpeg é:
/.../recorder/class/ffmpeg-2.6.1-32bit-static/./ffmpeg -i http://server/url/playlist.m3u8 -b:a 128K -acodec libmp3lame -ar 44100 -write_xing 0 -y -b:v 512K -vcodec flv -t 1860 /tmp/test.flv
Ele começa a gravar, mas na saída do console eu exibo muitos:Past duration 0.XXXXXX too large
O que este aviso significa? E como posso corrigi-los?
Esta é a saída do console das informações de entrada:
ffmpeg version 2.6.1- http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9.2 (Debian 4.9.2-10)
configuration: --enable-gpl --enable-version3 --disable-shared --disable-debug --enable-runtime-cpudetect --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libwebp --enable-libspeex --enable-libvorbis --enable-libvpx --enable-libfreetype --enable-fontconfig --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-gray --enable-libopenjpeg --enable-libopus --enable-libass --enable-gnutls --enable-libvidstab --cc=gcc-4.9
libavutil 54. 20.100 / 54. 20.100
libavcodec 56. 26.100 / 56. 26.100
libavformat 56. 25.101 / 56. 25.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.102 / 5. 11.102
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, hls,applehttp, from 'http://server/url/playlist.m3u8':
Duration: N/A, start: 35483.191100, bitrate: N/A
Program 0
Metadata:
variant_bitrate : 303609
Stream #0:0: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 320x180 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 90k tbn, 60 tbc
Metadata:
variant_bitrate : 303609
Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, mono, fltp, 67 kb/s
Metadata:
variant_bitrate : 303609
Como faço para resolver isso?
Responder1
Esta postagemparece ter a resposta: "As versões do FFMpeg posteriores a 15 de janeiro de 2015 geralmente exibem este aviso. Ele foi adicionado para alertar sobre uma possível distorção do controle de taxa, caso contrário, não causa nenhum dano."
Parece ser acionado quando "o tempo de apresentação (pts) no fluxo de entrada difere daquele no fluxo de saída em mais do que um limite fixo definido como 0,6"
Responder2
Parece ser um novo "recurso":ffmpeg envia spam para mensagens "duração anterior xy muito grande"
Com o ffmpeg versão 2.6.2 eles são gravados uma vez por quadro (frame =...) e com o 2.6.git eles ocorrem principalmente no início da gravação e depois em intervalos irregulares.