当前位置: 首页 > 知识库问答 >
问题:

基于FFmpeg的HEVC视频切割问题

贺恩
2023-03-14

我需要使用FFmpeg切割视频,我不能转码原始视频(因为性能的原因)。我在iPhone上的HEVC视频中遇到了一个问题:剪切视频的开头有滑移。

以下是我们在发行前如何转换视频:

ffmpeg.exe-i original.mov-c:v copy-c:a aac-ss 4-y good.mp4

经过一些Googlen搜索,发现输入前的-ss选项更快,但不太准确,而输入后和输出前的-ss选项更慢,但更准确。

所以我的问题是:

>

  • 为什么-ss选项在输入之前/之后会有不同的行为?

    “更准确/更不准确”是什么意思?这是否意味着搜索可能太大或太小(比我们指定的大/小)?这种差异可能有多大?

  • 共有1个答案

    西门靖琪
    2023-03-14

    为什么-ss选项的行为不同于将其放在输入之前/之后?

    当用作输入选项(-ss…-i…)时,ffmpeg首先查找输入流中的指定位置,然后开始解码帧。

    当在输入(-i)之后使用时,ffmpeg将从头解码流,并丢弃给定时间戳之前的所有帧。

      null

    是否有一种方法可以避免使用输出搜索ffmpeg选项出现故障?

    是的。在转码时不应该有任何故障,因为流将首先被解码,包括所有需要的先前帧,即使不在搜索范围内。然后,转码开始,新的时间戳将被分配给输出帧。

    “更准确/更不准确”是什么意思?这是否意味着搜索可能太大或太小(比我们指定的大/小)?这种差异可能有多大?

    这就是可能发生故障的地方。解码器不尊重这些负时间戳,仍然显示帧,然后显示为断帧,因为前一个关键帧不是流的一部分。有些解码器可能只播放音频而不显示视频。

    在这种情况下,最好对视频进行转码。

     类似资料:
    • 我试图理解MP4视频如何在在线流媒体中通过RTP进行分割(它是用H.264编解码器编码的)。有一些工具,比如FFMPEG或MP4box,或者我们可以使用ISO格式本身[moov,moof和mdat对]进行流媒体传输。我想知道的是,这些工具将如何分割视频中的mdat部分?他们会将MP4视频的所有单元(一组视频和音频帧)分离,并将它们与相关moov部分合并成一个片段,还是以其他方式进行? 还是使用H2

    • 我正在使用https://github.com/writingminds/ffmpeg-android-java命令裁剪视频: 其中“in”是inputfile,“out”是outputfile。

    • 我把很久以前在一次演讲中拍的一组电影连在一起。现在我要为每一个问题/答案剪掉它们。 我是这样做的。 ffmpeg-ss 00:00:34.7-t 00:10:44.6-y-i输入_movie.mp4-vcodec拷贝-acodec拷贝输出_1.mp4 ffmpeg-ss 00:11:22.2-y-i输入_movie.mp4-vcodec拷贝-acodec拷贝输出_2.mp4 然而,对于第二部分,我

    • 我正在使用ffmpeg录制一个视频使用覆盆子Pi与它的相机模块。我想运行一个图像分类器在一个规则的间隔,我需要从流中提取一个帧。 这是我当前用于录制的命令: 在其他线程中,建议使用此命令: 我不认为这是用于仍然附加到的文件,我得到错误“不能使用-SSEOF,test.h264的持续时间未知”。 ffmpeg允许这样做吗?

    • 我们在一个应用程序中使用ffmpeg对视频进行切片。虽然它对PAL视频的切片效果很好,但它对QT视频却不起作用...下面是我们使用的命令: ffmpeg.exe-i“input.mp4”ss startTime-c copy-to stopTime-y“output.mp4” 抛出错误-“[mp4@0515C240]在流#1中找不到编解码器pcm_s16le的标记,容器中当前不支持编解码器” 输入