Не удается найти помимо загруженных данных в некоторых видео H.264 в Silverlight - PullRequest
0 голосов
/ 17 января 2011

В проекте, над которым я сейчас работаю, используется проигрыватель на базе Silverlight для потоковой передачи видео wmv, закодированных через WME.Однако в будущем мы хотим уйти от Silverlight и перейти к тегу video в HTML5, поэтому нам необходимо кодировать наши видео в H.264 в контейнере mp4.

Все хорошо, кроменебольшая проблема, невозможно найти что-то кроме того, что было загружено, по крайней мере, в кодировках низкого качества.Один из наших тестовых файлов - это HD-видео WMV, которое мы кодируем до 2 Мбит, 1 Мбит и 0,5 Мбит, используя FFmpeg и mp4box для переупорядочения атомов moov.

В кодировках 2 и 1 Мбит кодируетсяSilverlight MediaElement распознает поиск вне того, что было загружено, как нам хотелось бы, и запрашивает видеоданные и начинает воспроизведение с точки поиска.
Однако с видео 0,5 Мбит не происходит, и вместо этого видео останавливается, покаон продолжает загружать видео в обычном режиме.

Использование видео низкого качества H.264 с Youtube работает, поэтому я не знаю, в этом ли проблема с параметрами FFmpeg или что-то еще.

Вот командная строка кодирования:

ffmpeg -y -i fooHD.wmv -an                               -vcodec libx264 -vpre slow -level 41 -b 2000k -bufsize 20000k -maxrate 25000k -g 250 -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +dct8x8+bpyramid -me_method umh -subq 7 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -bf 16 -b_strategy 1 -bidir_refine 1 -refs 6 -deblockalpha 0 -deblockbeta 0 -threads 0 -pass 1 -f rawvideo nul
ffmpeg -y -i fooHD.wmv -acodec libfaac -ar 44100 -ab 96k -vcodec libx264 -vpre slow -level 41 -b 2000k -bufsize 20000k -maxrate 25000k -g 250 -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +dct8x8+bpyramid -me_method umh -subq 7 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -bf 16 -b_strategy 1 -bidir_refine 1 -refs 6 -deblockalpha 0 -deblockbeta 0 -threads 0 -pass 2 bar2000k.mp4
ffmpeg -y -i fooHD.wmv -acodec libfaac -ar 44100 -ab 96k -vcodec libx264 -vpre slow -level 41 -b 1000k -bufsize 20000k -maxrate 25000k -g 250 -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +dct8x8+bpyramid -me_method umh -subq 7 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -bf 16 -b_strategy 1 -bidir_refine 1 -refs 6 -deblockalpha 0 -deblockbeta 0 -threads 0 -pass 2 bar1000k.mp4
ffmpeg -y -i fooHD.wmv -acodec libfaac -ar 44100 -ab 96k -vcodec libx264 -vpre slow -level 41 -b 500k -bufsize 20000k -maxrate 25000k -g 250 -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +dct8x8+bpyramid -me_method umh -subq 7 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -bf 16 -b_strategy 1 -bidir_refine 1 -refs 6 -deblockalpha 0 -deblockbeta 0 -threads 0 -pass 2 bar500k.mp4

mp4box.exe -inter bar2000k.mp4
mp4box.exe -inter bar1000k.mp4
mp4box.exe -inter bar500k.mp4

fooHD.wmv имеет длину 2:17 и работает со скоростью 8 Мбит / с при 29,97 кадр / с.

1 Ответ

0 голосов
/ 17 января 2011

Мое сообщение немедленно переходит к проблеме, связанной с отсутствием ключевых кадров, но я вижу -g 250 для всех ваших настроек кодирования. Однако, исходя из некоторых прошлых проблем, связанных с быстрым и свободным использованием кодировщиков с настройками I-кадров при низкой пропускной способности, я все же предлагаю прочитать статистику I-кадров / ключевых кадров, чтобы убедиться, что ваш файл 500k не кодируется так, как вы просили.

...