Я пытаюсь чередовать сегменты MPEG-TS, но не работает. Один набор сегментов был фактически захвачен с использованием встроенной камеры в ноутбуке, а затем кодируются с помощью FFMPEG с помощью следующей команды:Сегменты MPEG-TS HTTP Live Streaming
ffmpeg -er 4 -y -f video4linux2 -s 640x480 -r 30 -i %s -isync -f mpegts -acodec libmp3lame -ar 48000 -ab 64k -s 640x480 -vcodec libx264 -fflags +genpts -b 386k -coder 0 -me_range 16 -keyint_min 25 -i_qfactor 0.71 -bt 386k -maxrate 386k -bufsize 386k -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -aspect 640:480
, а другой представляет собой файл AVI, закодированного с помощью следующей команды:
fmpeg -er 4 -y -f avi -s 640x480 -r 30 -i ./DSCF2021.AVI -vbsf dump_extra -f mpegts -acodec libmp3lame -ar 48000 -ab 64k -s 640x480 -vcodec libx264 -fflags +genpts -b 386k -coder 0 -me_range 16 -keyint_min 25 -i_qfactor 0.71 -bt 386k -maxrate 386k -bufsize 386k -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -aspect 640:480
Затем выход сегментируется в сегменты ts с использованием сегментатора с открытым исходным кодом.
Если оба источника из одного источника (оба с камеры), они работают нормально. Однако в этом случае второй набор сегментов замерзает. Время проходит, но видео не перемещается. Так что я думаю, что это проблема кодирования. Поэтому мой вопрос: как мне изменить команду ffmpeg для этого?
По чередованию То есть, имеющий список воспроизведения с первым набором сегментов, а другой списком воспроизведения с другим набором сегментов, и имеющей клиентский вызовом один, то другим (HTTP Live Streaming)
Выход ffprobe одного из первого набора сегментов:
Input #0, mpegts, from 'live1.ts':
Duration: 00:00:09.76, start: 1.400000, bitrate: 281 kb/s
Program 1 Service01
Metadata:
name : Service01
provider_name : FFmpeg
Stream #0.0[0x100]: Video: h264, yuv420p, 640x480 [PAR 1:1 DAR 4:3], 29.92 fps, 29.92 tbr, 90k tbn, 59.83 tbc
Stream #0.1[0x101]: Audio: aac, 48000 Hz, stereo, s16, 111 kb/s
ffprobe выход одного из второго набора сегментов:
Input #0, mpegts, from 'ad1.ts':
Duration: 00:00:09.64, start: 1.400000, bitrate: 578 kb/s
Program 1 Service01
Metadata:
name : Service01
provider_name : FFmpeg
Stream #0.0[0x100]: Video: h264, yuv420p, 640x480 [PAR 1:1 DAR 4:3], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0.1[0x101]: Audio: aac, 48000 Hz, stereo, s16, 22 kb/s
Спасибо,
Хм, похоже, должно быть все в порядке. Вы можете показать вывод ffprobe из каждого потока? – vipw
Другим возможным решением может быть объединение захваченного видео и AVI-файла в одно видео, прежде чем делать кодирование и сегментирование. – vipw
@vipw Спасибо за ваш ответ. Я не могу их комбинировать, потому что захваченный поток является живым. Что касается ffprobe. Я добавлю его сейчас – user1069624