Обнаружил странную вещь: некоторые файлы, содержащие поток h264 (напр. если поток создан mencoder/x264) при дампе видеопотока дают вполне воспроизводимый файл (mplayer и ffmpeg его берут, а file опознаёт как JVT NAL sequence, H.264 video @ L 13. Некоторые же (напр. скачанный с tomsk.fm flv) воспроизводиться не хотят: file их не опознаёт, а mplayer видит всякие непонятные форматы. ffmpeg с -f h264 пытается его воспроизвести, но:
[h264 @ 0x43e0e870] missing picture in access unit with size 16997619
[h264 @ 0x43e0e870] no frame!
[h264 @ 0x43e004a0] Stream #0: not enough frames to estimate rate; consider increasing probesize
[h264 @ 0x43e004a0] decoding for stream 0 failed
[h264 @ 0x43e004a0] Could not find codec parameters for stream 0 (Video: h264): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[h264 @ 0x43e004a0] Estimating duration from bitrate, this may be inaccurate
aaa.raw: could not find codec parameters
Причём в файле были заголовки с упоминанием x264
Так же такой файл можно получить, используя аппаратный кодер cedarx в sun4i.
Утилита для кодирования по умолчанию создавала mkv файлы. Немного поковыряв код, я добафил возможность отключить mkv и писать файл в прямой поток. Выходной файл полностью совпадает с результатом дампа из mkv. Причём, mkv воспроизводится, а дамп нет.
Какую информацию нужно добавить в поток, чтобы он был воспроизводимым?