У меня есть файл, я хочу знать, является ли он форматом NV12, как определить, что файл является файлом формата nv12? Есть ли какой-нибудь инструмент или тестовый код?
Как определить, является ли файл файлом формата nv12?
Ответы (1)
Один из способов - использовать mplayer
Следующее должно работать (здесь я предполагаю размер CIF, то есть 352, 288)
$ mplayer -demuxer rawvideo -rawvideo w=352:h=288:format=nv12 file.yuv
Чтобы преобразовать из. скажем, 4: 2: 0, разделенные плоскостью (он же YV12, что в значительной степени является стандартом), вы можете использовать ffmpeg
:
$ ffmpeg -pix_fmt yuv420p -s 352x288 -i foreman_352x288.yuv -pix_fmt nv12 foreman_nv_12.yuv
yuv - это формат необработанных данных без каких-либо заголовков, поэтому вы ничего не можете сделать, кроме как пытаться просмотреть его в другом формате, пока вам не удастся найти совпадение.
Тем не менее, некоторые основные проверки согласованности заключаются в том, что NV12 является форматом 4:2:0
, что означает, что цветовые плоскости субдискретизированы с коэффициентом 2 как по ширине, так и по высоте, и это дает общее количество байтов для одного кадра:
width * height * 3 / 2
это вы можете проверить по общему количеству байтов для файла.
ffplay -s 352x288 -pix_fmt nv12 file.yuv
- person Fredrik Pihl; 17.11.2015