2014-03-22 4 views
4

Я использую x264 для сжатия видеопотока с веб-камеры с этой настройки:x264: Использование NAL ограничение размера губит поток

x264_param_default_preset(&param, "veryfast", "zerolatency"); 

param.i_threads = 1; 
param.i_fps_den = 1; 
param.b_annexb = 1; 

param.i_keyint_max = 30; 
param.rc.i_rc_method = X264_RC_CRF; 
param.rc.f_rf_constant = 25; 
param.rc.f_rf_constant_max = 35; 

param.b_repeat_headers = 1; 
x264_param_apply_profile(&param, "baseline"); 

param.i_slice_max_size = X264_NAL_MAX_SIZE; 

Я хотел бы, чтобы соответствовать NAL в размер MTU, но если я устанавливаю небольшой максимальный размер, поток разрушен - он случайно мигает между черным и белым, с некоторыми подсказками исходного изображения в фоновом режиме. Чем больше max_size, тем меньше вероятность того, что поток будет разрушен. Поэтому мой вопрос: можем ли мы иметь небольшие NALU и правильный поток видео?

UPD: Я использую FFmpeg в качестве декодера.

+2

i_slice_max_size должен работать правильно. если у вас возникли проблемы с этим, вам необходимо предоставить дополнительную информацию о коде кодирования и кодексе для мультиплексирования/записи кодированных NAL. Также для запуска было бы хорошо, если вы предоставите свой закодированный поток, который у вас есть проблемы для декодирования. – nobody555

+0

^Это. Проблема не в x264. это ваша сеть или код воспроизведения. – szatmary

+0

@szatmary - вы были правы, проблема была не в x264, а как в сети, так и в коде воспроизведения. Спасибо! –

ответ

3

Проблема на самом деле не была с x264. Я предположил, что x264 в порядке и проверяется каждый другой отдельный конвейер. Проблема была в том, что я использовал для отправки NAL по сети в декодер avcodec - это именно то, что декодер не может обрабатывать (explanation). Понадобился время, чтобы понять это.

Как только я набрал единицы NAL в исходные группы, исходя из тех же фреймов, проблема исчезла. Это также объясняет, почему проблему легче воспроизвести с помощью комбинации небольших NAL и большого количества движений - она ​​создала много одиночных NAL, которые avcodec не смог правильно декодировать.

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

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