
Вот команда:
ffmpeg -i rtmp://localhost/myapp/obs -c:a libfdk_aac -b:a 32k -c:v libx264 -f flv rtmp://localhost/hls/obs_low
Мой RTMP-сервер записывает все опубликованные потоки, поэтому я могу просматривать их все. Странно, что во время rtmp://localhost/myapp/obs
потоковой передачи, если я запускаю указанную выше команду ffmpeg, в выходном файле только аудио, видео нет. А в выходном терминале:
Stream mapping: Stream #0:0 -> #0:0 (aac (native) -> aac (libfdk_aac))
Но если я снова запущу ту же команду, там может быть видео. Случайно, есть видео или нет. Если видео есть, я вижу этот вывод в терминале:
Stream mapping: Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264)) Stream #0:0 -> #0:1 (aac (native) -> aac (libfdk_aac))
Полный вывод команды «только аудио»:http://pastebin.com/zL0ctvTZ
Полный вывод «успешной» команды:http://pastebin.com/DQ1XJ1wM
решение1
Похоже, что зазор между чередованием большой. Попробуйте с -analyzeduration 1G -probesize 50M -i rtmp://...
Значения представляют собой компромисс между пропуском потоков и задержкой начала захвата, поэтому я бы рекомендовал провести испытания. Значение по умолчанию для analyseduration и probesize равно 5M
, поэтому попробуйте использовать немного большие значения, пока вы последовательно не перестанете получать выпадения потоков. Сначала поэкспериментируйте с probesize. Возможно, вам не придется указывать другой.