LINUX.ORG.RU

Проблема с ffmpeg -vcodec copy

 , ,


0

3

Пытаюсь произвести захват видеопотока из интернета и пустить его в локальную сеть udp multicastom. Проблема состоит в том что ffmpeg вместо копирования видеокодека нативно его конвертит в mpeg1video а надо что бы он оставлял в h264 кодеке. Как решить эту проблему?

Вот сам код: -re -i rtmp://streamer.rtcommufa.ru:1935/tugantel/tugantel -map 0:0 -map 0:1 -c:a:0 copy -c:v:1 copy -f mpegts udp://239.98.7.10:20000?pkt_size=1316?ttl=5?cache=3000

Покажи полный вывод с -loglevel debug. Используй релиз 2.5.3.

Krieger_Od ★★
()

Вместо "-c:v:1" либо "-c:v:0", либо "-c:1". Если с указанием типа потока, то индексация ведется раздельно для видео и аудио.

Еще ты пишешь "-map 0:0 -map 0:1", а сегодня на том ресурсе "-map:0:1" соответствует «Stream #0:1: Data», а не видео потоку, как ожидаешь. Поэтому, когда ресурс не твой и не гарантирует постоянную нумерацию потоков, лучше указывать поток с указанием типа:

-map 0:a:0 -map 0:v:0 -c:a:0 copy -c:v:0 copy

Просто так скопировать указанный видео поток в mpegts не получится, потребуется преобразовать его бит-фильтром "-bsf:v h264_mp4toannexb".

Параметр -re для «живых» источников не нужен, и даже вреден.

Также, учитывая, что исходный поток содержит лишь по одному потоку каждого типа (аудио, видео, данные), все можно упростить до такой команды:

ffmpeg -i rtmp://streamer.rtcommufa.ru:1935/tugantel/tugantel -f mpegts -c copy -bsf:v h264_mp4toannexb udp://239.98.7.10:20000?pkt_size=1316?ttl=5?cache=3000

fopen ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.