Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未指定任何内容时的默认ffmpeg编解码器_Ffmpeg_Codec - Fatal编程技术网

未指定任何内容时的默认ffmpeg编解码器

未指定任何内容时的默认ffmpeg编解码器,ffmpeg,codec,Ffmpeg,Codec,如果我导入一个与ffmpeg一起使用的文件,但没有指定任何流的编解码器,ffmpeg会做什么?默认操作是只复制编解码器吗?或者ffmpeg会使用一些默认的编解码器对输入文件进行编码吗 以下两个命令是否相同?或者第二次重新编码需要时间 ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4 ffmpeg -i input.mkv output.mp4 如果我导入一个与ffmpeg一起使用的文件,但没有指定任何流的编解码器,ffmpeg会做什么 ff

如果我导入一个与ffmpeg一起使用的文件,但没有指定任何流的编解码器,ffmpeg会做什么?默认操作是只复制编解码器吗?或者ffmpeg会使用一些默认的编解码器对输入文件进行编码吗

以下两个命令是否相同?或者第二次重新编码需要时间

ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4

ffmpeg -i input.mkv output.mp4
如果我导入一个与ffmpeg一起使用的文件,但没有指定任何流的编解码器,ffmpeg会做什么


ffmpeg将使用默认编码器对输入中的每个流重新编码。使用的编码器将取决于您如何配置ffmpeg。例如,如果可用,
libx264
将是mp4输出的默认编码器,但如果不可用,则将使用
mpeg4
。默认情况下,ffmpeg只对每种类型的一个流进行重新编码,而忽略其余的流(请参阅)


在两个命令中,第一个命令将用于视频和音频。您的第二个命令将重新编码。

要查找第二个命令使用的默认编解码器(音频和视频),
ffmpeg-i input.mkv output.mp4
,在计算机上:

  • 运行该命令,可能使用
    -t5
    ,这样它完成得更快(仅编码5秒)

  • 运行
    ffprobe output.mp4
    。扫描输出中的“视频”和“音频”,查看最终使用了哪些编解码器。例如,我的Ubuntu 12安装使用h264和aac


如果我导入一个已经有h.264视频流的mp4文件怎么办?它是否会再次尝试编码,不改变任何东西,但无论如何要花很长时间?或者,它会识别出它已经是默认的编解码器,并复制它吗?@Sam
ffmpeg
将始终重新编码,除非您告诉它其他情况。如果会出现质量损失,则主要取决于输出格式。无损格式是一个例外,但如果需要进行颜色空间转换,则仍可能发生质量损失。但是,例如,如果您输出有损H.264视频,使用正确的选项,您可以使其看起来“视觉无损”;这意味着它在技术上不是无损的,但它已经足够好了,大多数人都无法分辨其中的差别。请参阅“使用的编码器将取决于您如何配置ffmpeg:”那么文档在哪里解释呢?对于音频和视频?我一定很笨。该文档仍然没有提到默认值,无论是在
/configure
的选项中还是在
ffmpeg-encoders
中。