потоковое воспроизведение файла mp4 с помощью ffmpeg из определенного времени видео

потоковое воспроизведение файла mp4 с помощью ffmpeg из определенного времени видео

Я хочу транслировать видеофайл (.mp4) с другим временем начала.

ДляпримерЯ хочу транслировать test.mkvфайл из минутного 00:02:30видео test.mkv. Поэтому, когда я транслирую его на rtmp-сервер, видео начинается с 00:02:30фильма, а не с начала. Примечание: Я не хочу ждать так долго, я хочу начать с того момента, как я нажал Enter по ffmpegкоманде. Поэтому ответы типа using cronjobбесполезны.

Вот ffmpegкоманда, которую я использую:

ffmpeg -i test.mkv -pix_fmt yuv420p -vsync 1 -threads 0 -vcodec libx264 -r 30 -g 60 -sc_threshold 0 -b:v 512k -bufsize 640k -maxrate 640k -preset veryfast -profile:v baseline -tune film -acodec aac -b:a 128k -ac 2 -ar 48000 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -bsf:v h264_mp4toannexb -f flv rtmp://test.server.com

Примечание:

Если у вас есть какие-либо предложения по улучшению ffmpegкоманды, я также буду признателен.

решение1

Кажется, флаг есть, -ssно каким-то образом есть небольшая подсказка, чтобы он работал. Его нужно поместить перед любым -iаргументом, чтобы он работал. Так просто, добавив, например, -ss 150Он начнется со 150 секунд от начала видео. Так что команда выше будет выглядеть так:

ffmpeg -ss 150 -i test.mkv -pix_fmt yuv420p -vsync 1 -threads 0 -vcodec libx264 -r 30 -g 60 -sc_threshold 0 -b:v 512k -bufsize 640k -maxrate 640k -preset veryfast -profile:v baseline -tune film -acodec aac -b:a 128k -ac 2 -ar 48000 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -bsf:v h264_mp4toannexb -f flv rtmp://test.server.com

Примечание:

Ставьте -ssперед любым -iаргументом.

Связанный контент