2012-06-08 2 views
2

Я создаю приложение, которое записывает live tv (dvbt: mpeg.ts-files) и сразу же транскодирует его с помощью ffmpeg в файл webm. Я могу делать это с постоянной скоростью; поэтому ffmpeg не догоняет растущий файл.Поиск видео во время транскодирования с помощью ffmpeg

Теперь я хочу воспроизвести этот файл на веб-сайте html5. Это работает, но когда ffmpeg не выполняется перекодирование (и мой веб-файл все еще растет), я не могу его искать (и нет индикатора выполнения).

Можно ли искать видеофайл, пока он перекодирован? Мне не хватает некоторых настроек ffmpeg? Или проблема webm?

Это то, что я сейчас:

ffmpeg -re "inputfile.ts" -y -f webm -vcodec libvpx -acodec libvorbis \ 
     -aq 90 -ac 2 -b:v 1300k -threads 2 "outputfile.webm" 

Спасибо

ответ

1

Я не знаю, что это поможет, но я работал над решением аналогичной твоей с FFmpeg транскодирования на флэш для потоковой передачи в Интернете. Метод для поиска требуемого JavaScript в проигрывателе, чтобы собрать что-то искать, в положение, которое затем изменить URL проигрывателя, сообщая фоновым начать потоковое снова с новой позиции, как:

http://server/player.php?video=x.flv&pos=1838 

На задний конец, команда FFmpeg будет что-то вроде:

ffmpeg -y -ss 1838 -i x.mpg -s 320x240 -g 30 -r 24 -f flv -deinterlace -ac 1 -ar 11025 -ab 64k -b 256k 

Однако, проблема, которую я столкнулся, что -ss вызывает FFmpeg, чтобы сделать снимок видео при поиске. Поэтому, если видео было живой записью (до сих пор записано), транскодированный поток заканчивается после того, как воспроизведение достигнет «относительного конца» (момент времени, когда окончание было при запуске потоковой передачи). Я все еще не нашел решения этой проблемы.

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