Сообщение Re[3]: как проверить что видео отображается с корректной ско от 06.06.2025 1:44
Изменено 06.06.2025 8:37 DiPaolo
Re[3]: как проверить что видео отображается с корректной ско
S>у меня плеер + функция анализа фреймов, результат анализа накладываеться на фремы и они потом отображаються
S>мне надо написать тесты которые в том числе подтвреждают что fps отображаемого на экране видео точно соответсвует fps видео от камеры
Аааа! С этого и надо было начинать. Тогда все проще:
1/ выбираешь видосы с разными фреймрейтами: как DF (23.98, 29.97, etc.), так и NDF (24, 30, etc.)
2/ транскодишь их БЕЗ изменения фреймрейта с прожитом поверх таймкода с номером фрейма. Можно примерно такой командой FFmpeg:
С размером шрифта можешь поиграться в завивисимости от разрешения + не забудь для разных фреймрейтов менять вот это значение r, выделенное жирным.
Первая часть, выделенная жирным, нужна, чтобы выставить CBR — тогда у тебя в начале цифры не будут смазанными.
Либо можешь нагенерить с нуля тестовый сигнал:
3/ закидываешь в свои тесты: на каждом фрейме у тебя будет его таймкод, включая номер фрейма в пределах секунды. Это можно хоть глазами читать, хоть в автотестах считывать с картинки.
S>мне надо написать тесты которые в том числе подтвреждают что fps отображаемого на экране видео точно соответсвует fps видео от камеры
Аааа! С этого и надо было начинать. Тогда все проще:
1/ выбираешь видосы с разными фреймрейтами: как DF (23.98, 29.97, etc.), так и NDF (24, 30, etc.)
2/ транскодишь их БЕЗ изменения фреймрейта с прожитом поверх таймкода с номером фрейма. Можно примерно такой командой FFmpeg:
ffmpeg -pix_fmt yuv420p -s 1280x720 -i park_joy_420_720p50.yuv -c:v libx264 -b:v 1000k -minrate 1000k -maxrate 1000k -bufsize 2000k -vf "drawtext=fontfile=tf.ttf: timecode='00\:00\:00\:00': r=25: fontcolor=0xccFFFF@1: fontsize=12: box=1: boxcolor=0x000000@0.2" park_joy_420_720p50_1000kbps_timecode.h264С размером шрифта можешь поиграться в завивисимости от разрешения + не забудь для разных фреймрейтов менять вот это значение r, выделенное жирным.
Первая часть, выделенная жирным, нужна, чтобы выставить CBR — тогда у тебя в начале цифры не будут смазанными.
Либо можешь нагенерить с нуля тестовый сигнал:
ffmpeg -f lavfi -i testsrc=duration=60:size=640x480:rate=25 -vf "drawtext=fontfile=tf.ttf: timecode='00\:00\:00\:00': r=25: fontcolor=0xccFFFF@1: fontsize=86: box=1: boxcolor=0x000000@0.2" -c:v h264 -b:v 200k -minrate 200k -maxrate 200k -bufsize 400k -pix_fmt yuv420p test_tv_signal_480p_25fps_1min.mp43/ закидываешь в свои тесты: на каждом фрейме у тебя будет его таймкод, включая номер фрейма в пределах секунды. Это можно хоть глазами читать, хоть в автотестах считывать с картинки.
Re[3]: как проверить что видео отображается с корректной ско
S>у меня плеер + функция анализа фреймов, результат анализа накладываеться на фремы и они потом отображаються
S>мне надо написать тесты которые в том числе подтвреждают что fps отображаемого на экране видео точно соответсвует fps видео от камеры
Аааа! С этого и надо было начинать. Тогда все проще:
1/ выбираешь видосы с разными фреймрейтами: как DF (23.98, 29.97, etc.), так и NDF (24, 30, etc.)
2/ транскодишь их БЕЗ изменения фреймрейта с прожигом поверх таймкода с номером фрейма. Можно примерно такой командой FFmpeg:
С размером шрифта можешь поиграться в завивисимости от разрешения + не забудь для разных фреймрейтов менять вот это значение r, выделенное жирным.
Первая часть, выделенная жирным, нужна, чтобы выставить CBR — тогда у тебя в начале цифры не будут смазанными.
Либо можешь нагенерить с нуля тестовый сигнал:
3/ закидываешь в свои тесты: на каждом фрейме у тебя будет его таймкод, включая номер фрейма в пределах секунды. Это можно хоть глазами читать, хоть в автотестах считывать с картинки.
S>мне надо написать тесты которые в том числе подтвреждают что fps отображаемого на экране видео точно соответсвует fps видео от камеры
Аааа! С этого и надо было начинать. Тогда все проще:
1/ выбираешь видосы с разными фреймрейтами: как DF (23.98, 29.97, etc.), так и NDF (24, 30, etc.)
2/ транскодишь их БЕЗ изменения фреймрейта с прожигом поверх таймкода с номером фрейма. Можно примерно такой командой FFmpeg:
ffmpeg -pix_fmt yuv420p -s 1280x720 -i park_joy_420_720p50.yuv -c:v libx264 -b:v 1000k -minrate 1000k -maxrate 1000k -bufsize 2000k -vf "drawtext=fontfile=tf.ttf: timecode='00\:00\:00\:00': r=25: fontcolor=0xccFFFF@1: fontsize=12: box=1: boxcolor=0x000000@0.2" park_joy_420_720p50_1000kbps_timecode.h264С размером шрифта можешь поиграться в завивисимости от разрешения + не забудь для разных фреймрейтов менять вот это значение r, выделенное жирным.
Первая часть, выделенная жирным, нужна, чтобы выставить CBR — тогда у тебя в начале цифры не будут смазанными.
Либо можешь нагенерить с нуля тестовый сигнал:
ffmpeg -f lavfi -i testsrc=duration=60:size=640x480:rate=25 -vf "drawtext=fontfile=tf.ttf: timecode='00\:00\:00\:00': r=25: fontcolor=0xccFFFF@1: fontsize=86: box=1: boxcolor=0x000000@0.2" -c:v h264 -b:v 200k -minrate 200k -maxrate 200k -bufsize 400k -pix_fmt yuv420p test_tv_signal_480p_25fps_1min.mp43/ закидываешь в свои тесты: на каждом фрейме у тебя будет его таймкод, включая номер фрейма в пределах секунды. Это можно хоть глазами читать, хоть в автотестах считывать с картинки.