FFMpeg 寻求 mkv x265 到 x264 的开始 + 结束生成不良持续时间和黑色输出

FFMpeg 寻求 mkv x265 到 x264 的开始 + 结束生成不良持续时间和黑色输出

我不明白我是否缺少参数,或者我理解文档的方式是否错误。我有一个程序强制我使用 FFmpeg(所以我不能使用 ffprobe)。FFMpeg 我使用的是“N-99928-g96f1b45b8c”。我有一个 MKV x265(电影),带有 FLAC、2 ASS 和章节。我必须从毫秒“A”到毫秒“B”精确提取 quiandi-ss-to(如果我没记错的话)。输出必须只是一个带有此修剪的 .mp4(无音频、无字幕等)。

我尝试过的命令:

ffmpeg -ss 00:40:42.210 -i "Y:\Anime2\Movie1.mkv" -to 00:40:44.210 -copyts -map 0:v -codec libx264 -crf 8 -sn "D:\raw.mp4"

或者

ffmpeg -ss 00:40:42.210 -i "Y:\Anime2\Movie1.mkv" -to 00:40:44.210 -copyts -start_at_zero -map 0:v "D:\raw.mp4"

或者-start_at_zero我尝试过: avoid_negative_ts make_zero

但是什么都没有...它创建了一个该持续时间的 mp4,但如果打开它则是全黑的,并且在 mediainfo 上作为常规部分的持续时间它告诉我我输入的值 -to(因此它的持续时间为 44:21 秒而不是 1960 毫秒)。这是与 ffmpeg 和 -ss 有关的问题,因为使用 MPV 它可以毫无问题地创建剪辑(只有 MPV 不能使用)。

-copyts我添加它是因为它必须准确地从该 ms 到另一个 ms(0-47 帧或 1-48 帧); -map 0:v我添加它是因为音轨等不需要; -sn我添加它是因为据我所知必须指定它(即使无论如何都不能将 ass 添加到 .mp4 中);

因此,我的问题是,它修剪了我,但它生成的文件全是黑色(如果打开,则全是黑色),并且持续时间是错误的(它应该是 1960 毫秒,大约 2 秒,但它说是 44 分 21 秒,这是输入的 -to 值)。时间值以 HH:MM:SS.xxx 为单位,我必须使用 -to(因此没有 -t 和帧)。

编辑1:快速搜索,我不能使用慢速搜索(它太慢了)。

提前感谢那些揭开谜底的人

答案1

修复了-pix_fmt yuv420p在 之后添加的问题-crf 4。如果此参数未强制用于 ffmpeg 命令,则 quicktime 7 (Sh@*) 似乎无法很好地读取视频。最终工作命令(在 aegisub 上进行修剪):

"#{encbin}" -ss #{startt} -sn -an -i "#{inpath}\#{input}" -vframes #{lenf} -c:v libx264 -r 24000/1001 -crf 4 -pix_fmt yuv420p "#{prefix}/#{output}[#{startf}-#{endf}].mp4"

最终的 ffmpeg 命令:

ffmpeg -ss 00:40:42.210 -sn -an -i "Y:\Anime2\Movie1.mkv" -vframes 48 -c:v libx264 -r 24000/1001 -crf 4 -pix_fmt yuv420p "D:\raw.mp4"

相关内容