You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FFmpeg编码视频无法在Azure Kinect Viewer播放的求助

Azure Kinect编码视频无法在Viewer播放的问题排查与解决

问题描述

通过Azure Kinect SDK捕获视频,使用MKVToolNIX提取RGB轨道后,该轨道可在Azure Kinect Viewer v1.4.1中正常播放。但执行FFmpeg命令ffmpeg -i .\RGB.mkv -c:v libx264 -preset veryfast -crf 18 -c:a aac -b:a 128k RGG_Enc.mkv编码后,视频无法在Viewer中打开,提示“Failed to open Recording”。尝试过H.264、H.265、VP9、VP10、MJPEG等多种编解码器及参数组合,均未解决问题。

原视频FFprobe输出

C:\Users\Ashutosh\Desktop\RGB_Encoding> ffprobe -i .\RGB.mkv
ffprobe version 6.0-full_build-www.gyan.dev Copyright (c) 2007-2023 the FFmpeg developers
built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint

libavutil      58.  2.100 / 58.  2.100
libavcodec     60.  3.100 / 60.  3.100
libavformat    60.  3.100 / 60.  3.100
libavdevice    60.  1.100 / 60.  1.100
libavfilter     9.  3.100 /  9.  3.100
libswscale      7.  1.100 /  7.  1.100
libswresample   4. 10.100 /  4. 10.100
libpostproc    57.  1.100 / 57.  1.100

[matroska,webm @ 0000018ef5f4e240] Could not find codec parameters for stream 1 (Attachment: none): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options

Input #0, matroska,webm, from '.\RGB.mkv':
Metadata:
  title           : Azure Kinect
  encoder         : libebml v1.4.4 + libmatroska v1.7.1
  creation_time   : 2023-08-04T11:52:43.000000Z
Duration: 00:00:40.03, start: 0.033000, bitrate: 126708 kb/s
Stream #0:0(eng): Video: mjpeg (Baseline) (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 2048x1536, SAR 1:1 DAR 4:3, 30 fps, 30 tbr, 1k tbn (default)

Metadata:
  title           : COLOR
  BPS             : 126696930
  DURATION        : 00:00:40.029000000
  NUMBER_OF_FRAMES: 1201
  NUMBER_OF_BYTES : 633943931
  _STATISTICS_WRITING_APP: mkvmerge v76.0 ('Celebration') 64-bit
  _STATISTICS_WRITING_DATE_UTC: 2023-08-04 11:52:43
  _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES

Stream #0:1: Attachment: none
Metadata:
  filename        : calibration.json
  mimetype        : application/octet-stream
Unsupported codec with id 0 for input stream 1

解决建议

  • 保留关键元数据与校准附件:Azure Kinect Viewer依赖原视频中的calibration.json附件和特定元数据识别文件,FFmpeg默认不会保留这些内容。使用以下命令编码,确保保留必要数据:
    ffmpeg -i .\RGB.mkv -c:v mjpeg -q:v 2 -an -attach ".\calibration.json" -metadata:s:t mimetype=application/octet-stream -metadata title="Azure Kinect" -metadata:s:v:0 title="COLOR" Encoded_RGB.mkv
    
    说明:采用与原视频一致的MJPEG编码,禁用音频(原视频无音频流),附加校准文件并设置对应元数据。
  • 匹配时间基准与帧率:原视频时间基准为1/1000,帧率30fps,编码时添加参数确保一致,避免时间戳不兼容:
    ffmpeg -i .\RGB.mkv -c:v mjpeg -q:v 2 -an -r 30 -time_base 1/1000 -attach ".\calibration.json" -metadata:s:t mimetype=application/octet-stream -metadata title="Azure Kinect" -metadata:s:v:0 title="COLOR" Encoded_RGB.mkv
    
  • 优先使用MKVToolNIX封装:若仅需压缩或重新封装,MKVToolNIX会保留原始元数据和附件,更适配Azure Kinect的格式要求,避免FFmpeg的元数据丢失问题。
  • 避免添加多余轨道:原视频无音频流,不要强制添加AAC音频,否则会导致Viewer识别异常,编码时用-an参数禁用音频。

内容的提问来源于stack exchange,提问作者Ashutosh Singla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 16:09:53