У меня есть видео, которое я бы хотел транслировать на YouTube с помощью ffmpeg. У видео нет звука, но довольно занятые визуальные эффекты (много быстро меняющихся цветов). Я пытаюсь транслировать в режиме 720p, но всякий раз, когда я смотрю прямую трансляцию, это не гладко. Там много заиканий и буферов. Тем не менее, после того, как трансляция закончена, и я смотрю больше не живое видео, все кадры присутствуют и сглаживаются.
Из-за этого у меня возникли проблемы с просмотром потокового видео в реальном времени, но у меня нет проблем с просмотром других потоков с разрешением 720p или выше. Кроме того, при потоковой передаче сложных частей моего видео ffmpeg "time = ..." замедляется, битрейт увеличивается, и fps также падает.
Это заставляет меня поверить, что проблема в команде ffmpeg, которую я использую для ее отправки. Когда я использую ту же команду для отправки более простого видео (все белое с черной рамкой), у меня не возникает никаких проблем.
Вот мой скрипт ffmpeg:
INPUT=""
# Read input as native framerate
INPUT="$INPUT -re"
# Input file
INPUT="$INPUT -i input.flv"
AUDIO=""
# Read input as native framerate
AUDIO="$AUDIO -re"
# Audio codec (lavfi is better for bandwidth?)
AUDIO="$AUDIO -f lavfi"
# Input (dummy)
AUDIO="$AUDIO -i aevalsrc=0"
OUTPUT=""
# Video codec
OUTPUT="$OUTPUT -c:v libx264"
# Video resolution
OUTPUT="$OUTPUT -video_size 1280x720"
# Pixel format
#OUTPUT="$OUTPUT -pix_fmt yuv420p"
# Attempt to force bitrate at 1500k
OUTPUT="$OUTPUT -minrate 150k -maxrate 150k -b:v 150k"
# frames per second
OUTPUT="$OUTPUT -r 25"
# Audio codec
OUTPUT="$OUTPUT -c:a libvo_aacenc"
# GOP size (calculates intraframes)
OUTPUT="$OUTPUT -g 30"
# Format
OUTPUT="$OUTPUT -f flv"
# Allow use of "experimental" encoders
OUTPUT="$OUTPUT -strict experimental"
# Testing
OUTPUT="$OUTPUT rtmp://a.rtmp.youtube.com/live2/xxx"
Можно ли использовать ffmpeg для отправки такого видео без буферизации?