web-dev-qa-db-ja.com

生のh264ファイルをIPカメラからPCで再生可能なものに変換するにはどうすればよいですか?

私の防犯カメラ( Victure PC7 )は、動きを検出すると、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

ファイルの始まりは次のとおりです。

image of a hexdump of the first bytes

NALユニットの区切り文字00 00 01が頻繁に表示されるため、ファイルにはNALユニットが含まれているように見えますが、NALユニット内のペイロードについてはよくわかりません。

それを再生可能な形式に変換する方法についてのアイデアは大歓迎です。

2
Winf

ビデオを変換する代わりに、おそらくそのストリームを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
1
JakeGould

530/540モデルと同様の場合、ビデオは暗号化されます。カメラ設定で暗号化を無効にしない限り、アプリでの動画の表示は制限されています。無効にすることができるかどうかはわかりませんが、onvifを有効にすることで可能です。

0
AntonyMCs