Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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
Video 将mkv转换为h264 FFmpeg_Video_Ffmpeg_Mp4_H.264_Mkv - Fatal编程技术网

Video 将mkv转换为h264 FFmpeg

Video 将mkv转换为h264 FFmpeg,video,ffmpeg,mp4,h.264,mkv,Video,Ffmpeg,Mp4,H.264,Mkv,编辑: 这个问题已经变得非常流行,并且是搜索“convert mkv to h264 ffmpeg”的最佳结果之一,因此我觉得添加这个问题是合适的,因为任何遇到这个问题的人都应该使用它 ffmpeg -i input.mkv -c:v libx264 -c:a aac output.mp4 在FFmpeg的最新版本中,libvo_aacenc已被删除,它现在有一个本地aac编码器。有关更多信息,请访问编码AAC 原来的问题是: 我想使用FFmpeg将.mkv文件转换为.mp4。我尝试了以下代码

编辑: 这个问题已经变得非常流行,并且是搜索“convert mkv to h264 ffmpeg”的最佳结果之一,因此我觉得添加这个问题是合适的,因为任何遇到这个问题的人都应该使用它

ffmpeg -i input.mkv -c:v libx264 -c:a aac output.mp4
在FFmpeg的最新版本中,libvo_aacenc已被删除,它现在有一个本地aac编码器。有关更多信息,请访问编码AAC

原来的问题是:

我想使用FFmpeg将.mkv文件转换为.mp4。我尝试了以下代码:

ffmpeg -i input.mkv -c:v libx264 -c:a libvo_aacenc output.mp4
但我得到了一个错误:

打开输出流#0:1的编码器时出错-可能是不正确的参数,如比特率、速率、宽度或高度


有没有办法绕过这个问题?我已尝试设置音频的比特率,但问题似乎仍然存在。

我建议您首先检查.mkv文件是否已包含H.264/AAC流。因为如果是这样,您所要做的就是复制流并更改容器:

ffmpeg -i input.mkv -c copy output.mp4
如果没有,您可能会被拒绝,因为您的格式与.mp4不兼容。请尝试以下操作以输出H.264/AAC:

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

但是,如果.mkv已经包含H.264/AAC,请使用第一种解决方案。它会更快,质量更好。

作为ffmpeg的替代方案,您可以使用HandBrakeCLI,例如:

HandBrakeCLI --encoder "x264" --quality 25.0 --aencoder "copy:aac" --audio-fallback "av_aac" --all-audio --all-subtitles -i "input.mkv" -o "output.mkv"
HandBrakeCLI是handbrake cli软件包的一部分


有关参数解释,请参阅HandBrakeCLI--help或

相关:如错误所述,您的参数不正确(或缺失)。请参阅:
mkv
是一个,而
H.264
是一个。您无法将容器转换为endoding。@Rikus Honey您是否像这样启用了
libvo aacenc
——启用libvo aacenc。为什么不使用
libfaac
libfdk\u aac
。它们是免费的。您可以使用
-codec copy
-c copy
而不是
-vcodec copy-acodec copy
。此外,如果您想使用x264进行编码,通常最好设置一些特定的编码设置(预设和一些速率/q控制方法),尽管最初的问题是如何使用ffmpeg进行编码,这是一个有效的答案,因为手刹实际上使用ffmpeg。。。很好的解决方案,谢谢!