Сообщение Re[2]: ffmpeg на android от 26.05.2025 10:47
Изменено 26.05.2025 11:19 aik
Re[2]: ffmpeg на android
Здравствуйте, Nuzhny, Вы писали:
aik>>Первые пару секунд качество нормальное, а потом падает домкратом. Загрузка проца не выше 20%, ffmpeg успевает в реалтайме. -crf, -dp — по барабану. Если поставить "h264" (а не ускоренную h264_mediacodec), то эффект пропадает, но пропадают кадры, потому что уже проц капитально не успевает.
N>Про андроид не знаю, но тут явно надо смотреть логи от ffmpeg. Не успевать может и сеть, и запись на диск, банально при низкой загрузке ядра могут сбрасывать частоту и из-за этого не успевать (такое на х86 бывает).
Ну вот с такой командой top показывает 15..30% (половина из-за aac, но замена на "c:a copy" ничего не меняет в видео), сеть гигабит, не надо никуда ничего писать в телефоне (хотя он бы осилил). Этот ffmpeg всегда ругается на что то, но всё работает.
Попробовал тоже самое на пикселе6 — ровно та же хрень — если h264_mediacodec, то качество быстро падает, если h264 — то едва успевает кодировать, но качество не падает. Если запускать ffmpeg на нормальном компе — то всё успевает (но ругается регулярно на "RTP: missed 7 packets" и "max delay reached. need to consume packetdup=0 drop=4 speed= 1.1x").
aik>>Первые пару секунд качество нормальное, а потом падает домкратом. Загрузка проца не выше 20%, ffmpeg успевает в реалтайме. -crf, -dp — по барабану. Если поставить "h264" (а не ускоренную h264_mediacodec), то эффект пропадает, но пропадают кадры, потому что уже проц капитально не успевает.
N>Про андроид не знаю, но тут явно надо смотреть логи от ffmpeg. Не успевать может и сеть, и запись на диск, банально при низкой загрузке ядра могут сбрасывать частоту и из-за этого не успевать (такое на х86 бывает).
Ну вот с такой командой top показывает 15..30% (половина из-за aac, но замена на "c:a copy" ничего не меняет в видео), сеть гигабит, не надо никуда ничего писать в телефоне (хотя он бы осилил). Этот ffmpeg всегда ругается на что то, но всё работает.
ffmpeg -hwaccel mediacodec -i 'rtsp://monstercam:554/user=admin&password=admin&channel=&stream=.sdp?real_stream--rtp-caching=100' -c:a aac -c:v h264_mediacodec -f rtsp -rtsp_transport tcp rtsp://srv:8554/roof| лог | |
| |
Попробовал тоже самое на пикселе6 — ровно та же хрень — если h264_mediacodec, то качество быстро падает, если h264 — то едва успевает кодировать, но качество не падает. Если запускать ffmpeg на нормальном компе — то всё успевает (но ругается регулярно на "RTP: missed 7 packets" и "max delay reached. need to consume packetdup=0 drop=4 speed= 1.1x").
Re[2]: ffmpeg на android
Здравствуйте, Nuzhny, Вы писали:
aik>>Первые пару секунд качество нормальное, а потом падает домкратом. Загрузка проца не выше 20%, ffmpeg успевает в реалтайме. -crf, -dp — по барабану. Если поставить "h264" (а не ускоренную h264_mediacodec), то эффект пропадает, но пропадают кадры, потому что уже проц капитально не успевает.
N>Про андроид не знаю, но тут явно надо смотреть логи от ffmpeg. Не успевать может и сеть, и запись на диск, банально при низкой загрузке ядра могут сбрасывать частоту и из-за этого не успевать (такое на х86 бывает).
Ну вот с такой командой top показывает 15..30% (половина из-за aac, но замена на "c:a copy" ничего не меняет в видео), сеть гигабит, не надо никуда ничего писать в телефоне (хотя он бы осилил). Этот ffmpeg всегда ругается на что то, но всё работает.
Попробовал тоже самое на пикселе6 — ровно та же хрень — если h264_mediacodec, то качество быстро падает, если h264 — то едва успевает кодировать, но качество не падает. Если запускать ffmpeg на нормальном компе — то всё успевает (но ругается регулярно на "RTP: missed 7 packets" и "max delay reached. need to consume packetdup=0 drop=4 speed= 1.1x").
ps. самая тоска это что, похоже, андроид не даёт сразу 3 потока транскодить, а хотелось чего то такого. эх.
aik>>Первые пару секунд качество нормальное, а потом падает домкратом. Загрузка проца не выше 20%, ffmpeg успевает в реалтайме. -crf, -dp — по барабану. Если поставить "h264" (а не ускоренную h264_mediacodec), то эффект пропадает, но пропадают кадры, потому что уже проц капитально не успевает.
N>Про андроид не знаю, но тут явно надо смотреть логи от ffmpeg. Не успевать может и сеть, и запись на диск, банально при низкой загрузке ядра могут сбрасывать частоту и из-за этого не успевать (такое на х86 бывает).
Ну вот с такой командой top показывает 15..30% (половина из-за aac, но замена на "c:a copy" ничего не меняет в видео), сеть гигабит, не надо никуда ничего писать в телефоне (хотя он бы осилил). Этот ffmpeg всегда ругается на что то, но всё работает.
ffmpeg -hwaccel mediacodec -i 'rtsp://monstercam:554/user=admin&password=admin&channel=&stream=.sdp?real_stream--rtp-caching=100' -c:a aac -c:v h264_mediacodec -f rtsp -rtsp_transport tcp rtsp://srv:8554/roof| лог | |
| |
Попробовал тоже самое на пикселе6 — ровно та же хрень — если h264_mediacodec, то качество быстро падает, если h264 — то едва успевает кодировать, но качество не падает. Если запускать ffmpeg на нормальном компе — то всё успевает (но ругается регулярно на "RTP: missed 7 packets" и "max delay reached. need to consume packetdup=0 drop=4 speed= 1.1x").
ps. самая тоска это что, похоже, андроид не даёт сразу 3 потока транскодить, а хотелось чего то такого. эх.