ffmpeg从mkv到mp4的转换,无需重新编码
我正在使用ffmpeg通过以下命令将容器从mkv切换到mp4:ffmpeg从mkv到mp4的转换,无需重新编码,ffmpeg,Ffmpeg,我正在使用ffmpeg通过以下命令将容器从mkv切换到mp4: ffmpeg -i filename.mkv -vcodec copy 1.mp4 这是我在从mkv容器转换到mp4时发现的最简单的命令,无需重新编码。另外说明的输出(如果我没有弄错的话) 这是输出的小屏幕截图: 其中表示流映射,#0:0(264(本机))->264(libx264))。这是否意味着它正在从x264重新编码到libx264?我做错了什么 感谢您的帮助…问题已解决,请指定音频编解码器以解决我的问题 ffmpeg -
ffmpeg -i filename.mkv -vcodec copy 1.mp4
这是我在从mkv容器转换到mp4时发现的最简单的命令,无需重新编码。另外说明的输出(如果我没有弄错的话)
这是输出的小屏幕截图:
其中表示流映射,#0:0(264(本机))->264(libx264))。这是否意味着它正在从x264重新编码到libx264?我做错了什么
感谢您的帮助…问题已解决,请指定音频编解码器以解决我的问题
ffmpeg -i filename.mkv -vcodec copy -acodec copy 1.mp4
使用FFmpeg将容器(如MKV或AVI)重新移动到MP4,只会在输出文件的输入文件中保留一个音频和视频流,它会尝试选择可用的最佳音频和视频流。这可以通过以下方法避免 Matroska文件通常包含FFmpeg(尤其是SRT/Subrip或ASS/SSA)在MOV/MPEG容器中不支持的格式的字幕。它们可以简单地用
-sn
删除,也可以转换为本机格式,如mov_text
。(你也可以。)
有时,通过使用启发式添加缺少的信息可能会有所帮助。这是用-find\u stream\u info
激活的,但我不确定默认情况下是否应该使用它
我将假设构建的配置不需要知道(-hide_banner
),只需要将严重问题记录到控制台(,或者:安静
|恐慌
|致命
|错误
|警告
信息
(默认)|详细
|调试
|跟踪
)
因此,一个相当通用的转换命令如下所示:
$ffmpeg-find_stream_info-i input.mkv\
-映射0-编解码器副本-编解码器:s mov_text output.mp4\
-隐藏_横幅-日志级别警告\
rm input.mkv
要在cmd
中批处理Windows框中的多个文件并覆盖现有文件(-y
),请使用For
:
FOR /r %F IN (*.mkv) DO (@ffmpeg \
-find_stream_info -i "%F" \
-map 0 -codec copy -codec:s mov_text "%~pnF.mp4" \
-hide_banner -loglevel warning -y)
将此批处理文件扔到同一目录中并执行它。这应该可以做到:
@ECHO OFF
FOR %%F IN (*.mkv) DO (
ffmpeg -i %%~nF.mkv -acodec copy -vcodec copy %%~nF.mp4
)
某些上下文,以防其他人面临相同的情况:
我以前使用OBS录制过我的桌面;索尼维加斯不接受mkv文件。我运行了上面的批处理,在每个捕获上调用ffmpeg,生成的MP4被Sony Vegas接受。图像链接-将来,请注意,ffmpeg问题属于SuperUser.com。控制台输出是文本。它可以复制和粘贴。不需要一些文本的图像。这就像给某人写一封电子邮件,然后只截取其中的一半,然后发送。只需使用
-c copy
而不是-vcodec copy-acodec copy
。还要注意-i参数必须位于-vcodec和-acodec参数之前。