2014-01-17 3 views
0

Я пытаюсь кодировать поток живой RTMP через Libav библиотеки кодера с помощью avconv инструмента в следующей команде -Аудио синхронизация с Libav кодировщика

avconv -timelimit 4000 -i rtmp://IP/live/file-name -shortest -s 176*144 -r 10 \ 
-b:v 56k -ab 12k -ac 1 -ar 22050 -f flv rtmp://IP/live/file-name_56 

Но звук не синхронизирован с видео в выходном потоке, и видео лагов поскольку его скорость передачи битов была изменена до 56 кбит/с. Но битовая скорость звука не изменяется & Звучит текущий звук.

Я играю его через среду времени выполнения на Java и 1 час видео останавливается через 10 минут. Эта проблема есть, когда я бег потока в Java, чтобы запустить avconv команды следующего

public void run() { 
    try{ 
     Thread.sleep(500); 
Process pr= Runtime.getRuntime().exec("avconv -timelimit 4000 -i rtmp://IP/live/file-name -shortest -s 176*144 -r 10 -b:v 56k -ab 12k -ac 1 -ar 22050 -f flv rtmp://IP/live/file-name_56"); 
pr.waitFor(); 
}} 

Просьбы представить предложения по этому вопросу.

ответ

0

Аудио синхронизация достигается с помощью

-async samples_per_second

Audio метод синхронизации. «Растягивает/сжимает» аудиопоток в соответствии с отметками времени, параметр - это максимальные сэмплы в секунду, с помощью которых звук изменяется. -async 1 - это особый случай, когда исправляется только начало аудиопотока без какой-либо последующей коррекции.

Process pr= Runtime.getRuntime().exec("avconv -async 15 -timelimit 4000 -i rtmp://IP/live/file-name -shortest -s 176*144 -r 10 -b:v 56k -ab 12k -ac 1 -ar 22050 -f flv rtmp://IP/live/file-name_56"); 

 Смежные вопросы

  • Нет связанных вопросов^_^