无法在iPhone中播放带有hvc1标签的DAV转MP4转换的H.265视频文件

问题描述 投票:0回答:1

我使用以下命令从大华相机将 H.265 视频文件转换为 dav 格式。生成的两个 mp4 视频文件都无法在 iPhone 默认播放器中播放。但是,生成的视频文件可以在 VLC 播放器中播放。

ffmpeg -y -i hevc.dav -c:v copy -tag:v hvc1 hevc.mp4
ffmpeg -y -i hevc.dav -tag:v hvc1 -c:v copy -f mp4 -movflags frag_keyframe+empty_moov hevc.mp4

仅当我使用以下命令重新编码视频时,生成的视频文件才会播放。

ffmpeg -y -i hevc.dav -c:v libx265 -tag:v hvc1 hevc.mp4

重新编码非常耗时。因此,如果我在上述命令中缺少任何标志,请告诉我。

iphone ffmpeg mp4 hevc
1个回答
0
投票

使用 hexdump -C 命令验证源 dav 文件,发现文件开头的字节不是 DHAV。它给了我一个线索,第一个 HEVC 帧并不完整。

编写了一个小C程序来搜索文件中是否还有DHAV字节,我在大约46KB后找到了DHAV。从文件开头删除这些部分字节,并将剩余字节写入另一个名为 hevc_cropped.dav 的文件,然后运行以下命令。

ffmpeg -y -i hevc_cropped.dav -c:v copy -tag:v hvc1 hevc.mp4

这次生成的视频文件可以正常播放了。

© www.soinside.com 2019 - 2024. All rights reserved.