以下是我的源文件的信息:
我希望保持音频质量,并对视频轨道进行编码,因此我使用以下命令:
ffmpeg -i INPUT -c:a copy -c:v libx265 video-h265.mp4
其结果是:
但是视频曲目的编解码器是hev1。我要hvc1
发布于 2015-09-09 16:50:25
“hev1”/“hvc1 1”是用来在容器mp4文件中对流的不同打包发出信号的代码点。编码本身没有变化。这两种模式之间有可能往返。尝试使用mp4box:
mp4box -raw 1 file.mp4
这将将流提取到原始的HEVC文件中。
mp4box -add file_track1.hvc output.mp4
如果可以的话,这将使用hvc1重新导入流。
发布于 2017-10-03 08:46:09
使用最新的ffmpeg
(N-87630-ge9f9175-tessus
或从HEAD
构建),您可以使用-tag:v hvc1
将macOS High所需的MP4版本编码为MP4版本。
如果您有一个hev1
-based mp4,并且需要容器为hvc1
,并且不想重新编码它:
ffmpeg -i input-hev1.mp4 -c:v copy -tag:v hvc1 -c:a copy output-hvc1.mp4
使用ff探头确认更改:
发自:
~~~~
Stream #0:0(eng): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv, progressive), 720x404, 164 kb/s, 29.97 fps,
~~~~
至:
~~~~
Stream #0:0(eng): Video: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv, progressive), 720x404, 164 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 29.97 tbc (default)
~~~~
如果您有一个较旧的基于avc1
的mp4,则需要对其重新编码。
ffprobe
示例(avc1
):
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 960x540 [SAR 1:1 DAR 16:9], 2778 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 180k tbc (default)
编码示例:
ffmpeg
-i input.mp4 \
-c:v libx265 \
-preset slow \
-vf scale="720:trunc(ow/a/2)*2" \
-crf 28 \
-tag:v hvc1 \
-c:a aac -b:a 44100 \
output-hvc1.mp4
关键是-tag:v hvc1
,否则您将得到一个hev1
-based容器,而Quicktime 10.4+ (High塞拉利昂)将不会打开该容器。
发布于 2018-08-17 13:03:47
将-tag:v hvc1
作为@SushiHangover的答案和-bsf:v hevc_mp4toannexb
添加到ffmpeg
命令(Version3.4及更高版本)中。这将创建一个与QuickTime兼容的mov文件。
ffmpeg -i input-hev1.mp4 -c:v copy -tag:v hvc1 -bsf:v hevc_mp4toannexb -c:a copy output-hvc1.mov
https://stackoverflow.com/questions/32152090
复制相似问题