我的安全摄像头(维图 PC730) 如果检测到任何动作,就会将短视频存储在 SD 卡上。
这些文件被命名为xx.h264
。
没有播放器(VLC、MPlayer 等)能够播放它。
它似乎是某种 h264 压缩。
我尝试用 FFmpeg 转换它
ffmpeg -i 00.264 -bsf h264_mp4toannexb -vcodec libx264 out00.mp4
还有许多其他选项。转换总是会产生很多错误,例如:
out00.h264: corrupt decoded frame in stream 0
[h264 @ 0000000000509a00] concealing 7804 DC, 7804 AC, 7804 MV errors in P frame
out00.h264: corrupt decoded frame in stream 0
[h264 @ 00000000036e2a00] concealing 8045 DC, 8045 AC, 8045 MV errors in P frame
[h264 @ 000000000366fc80] top block unavailable for requested intra mode -1
[h264 @ 000000000366fc80] error while decoding MB 78 0, bytestream 1153
[h264 @ 000000000366fc80] concealing 8131 DC, 8131 AC, 8131 MV errors in P frame
out00.h264: corrupt decoded frame in stream 0
[h264 @ 0000000002bf0e40] concealing 7930 DC, 7930 AC, 7930 MV errors in P frame
[NULL @ 00000000004f2980] illegal POC type 10
out00.h264: corrupt decoded frame in stream 0
[h264 @ 00000000036e2a00] illegal POC type 10
frame= 1489 fps= 12 q=28.0 size= 5888kB time=00:00:57.44 bitrate= 839.7kbits/
[h264 @ 00000000036e2a00] illegal POC type 10
Last message repeated 1 times
out00.h264: corrupt decoded frame in stream 0
[h264 @ 00000000004e2bc0] top block unavailable for requested intra mode -1
[h264 @ 00000000004e2bc0] error while decoding MB 62 0, bytestream 1441
以下是该文件的开头:
您可以经常看到 NAL 单元分隔符00 00 01
,因此该文件似乎包含 NAL 单元,但我不熟悉 NAL 单元内部的有效负载。
欢迎提出任何有关如何将其转换为可播放格式的想法。
答案1
您很可能不需要转换视频,而是需要将该流放入 MP4 视频容器中。因此请使用如下命令:
ffmpeg -i input.h264 -c copy output.mp4
这只会将 的原始内容复制input.h264
到 中output.mp4
。但它现在将位于 MP4 容器中,该容器应在所有兼容播放器中按预期播放。甚至可以强制像这样的帧速率:
ffmpeg -framerate 30 -i input.h264 -c copy output.mp4
如果视频流确实损坏了,请尝试这个命令,它基本上执行与第一个命令类似的操作,但在这种情况下它会忽略错误:
ffmpeg -err_detect ignore_err -i input.h264 -c copy output.mp4
答案2
您说过您尝试过使用 VLC,所以我认为这是您感兴趣的一个选项。
所以我刚刚raw.h264
从崩溃的 DJI 无人机控制器中提取了一些文件。
对我来说,使用 VLC 的最新版本播放文件是可行的。但我无法在任何其他设备上以这种格式使用这些文件,而且在 VLC 中观看文件似乎确实很滞后。所以我发现 VLC 有一个选项可以转换文件。
在 Mac 上raw.h264
使用 VLC 打开文件。然后在菜单中转到“文件”并选择“转换/流...”。
您将看到如下所示的屏幕,您可以在其中选择输入raw.h264
文件并选择所需的输出文件和位置。
编辑:实际上,我发现通过此页面进行转换可以获得更好的输出:https://h264-to-mp4.file-converter-online.com/
答案3
如果是 530/540 型号,视频是加密的。除非您在相机设置中禁用加密,否则您只能在其应用程序上查看视频。不确定您是否可以禁用它,但启用 onvif 就可以了。