video - ffmpeg:两步编码是否解决了视频转换过程中的问题?

标签 video encoding ffmpeg

我正在将几个视频编码为 x265 格式以节省磁盘存储空间,其中一些视频发生了一些错误。像下面这些:

[h264 @ 0x285f800] error while decoding MB 15 15, bytestream -29ate=3310.7kbits/s
[h264 @ 0x285f800] concealing 2434 DC, 2434 AC, 2434 MV errors in P frame
[matroska,webm @ 0x22205e0] Read error at pos. 1932044330 (0x7328a82a)
[h264 @ 0x27890c0] illegal short term buffer state detected
[h264 @ 0x27890c0] Missing reference picture, default is 65694
[h264 @ 0x27d0880] mmco: unref short failure
[h264 @ 0x27d0880] error while decoding MB 63 29, bytestream -8rate=3230.1kbits/s dup=0 drop=1
[h264 @ 0x27d0880] concealing 1266 DC, 1266 AC, 1266 MV errors in P frame
[matroska,webm @ 0x22205e0] Read error at pos. 2048927876 (0x7a202884)
[h264 @ 0x27304e0] mmco: unref short failureime=00:48:51.54 bitrate=3229.2kbits/s dup=0 drop=1
[h264 @ 0x27890c0] error while decoding MB 28 35, bytestream -16ate=3177.0kbits/s dup=0 drop=1
[h264 @ 0x27890c0] concealing 821 DC, 821 AC, 821 MV errors in P frame
[matroska,webm @ 0x22205e0] Read error at pos. 2112109973 (0x7de43d95)
[h264 @ 0x285f800] mmco: unref short failureime=00:50:36.21 bitrate=3175.5kbits/s dup=0 drop=1
[h264 @ 0x27d0880] error while decoding MB 51 21, bytestream -28ate=3199.4kbits/s dup=0 drop=1
[h264 @ 0x27d0880] concealing 1918 DC, 1918 AC, 1918 MV errors in P frame
[matroska,webm @ 0x22205e0] Read error at pos. 2202555497 (0x83485469)
[matroska,webm @ 0x22205e0] Read error at pos. 2409903171 (0x8fa43443)306.9kbits/s dup=0 drop=1
[h264 @ 0x27d0880] error while decoding MB 3 30, bytestream -7
[h264 @ 0x27d0880] concealing 1246 DC, 1246 AC, 1246 MV errors in P frame
[h264 @ 0x27890c0] error while decoding MB 7 5, bytestream -7bitrate=3396.2kbits/s dup=0 drop=1
[h264 @ 0x27890c0] concealing 3242 DC, 3242 AC, 3242 MV errors in B frame
[matroska,webm @ 0x22205e0] Read error at pos. 2628527465 (0x9cac2569)
[h264 @ 0x285f800] mmco: unref short failuretime=01:02:15.08 bitrate=3396.3kbits/s dup=0 drop=1
[h264 @ 0x2818040] error while decoding MB 36 30, bytestream -12rate=3473.5kbits/s dup=0 drop=1
[h264 @ 0x2818040] concealing 1213 DC, 1213 AC, 1213 MV errors in P frame
[matroska,webm @ 0x22205e0] Read error at pos. 2874947326 (0xab5c36fe)
[h264 @ 0x27890c0] error while decoding MB 46 8, bytestream -6itrate=3590.8kbits/s dup=0 drop=1
[h264 @ 0x27890c0] concealing 2963 DC, 2963 AC, 2963 MV errors in B frame
[matroska,webm @ 0x22205e0] Read error at pos. 3162785874 (0xbc844852)

如果我添加两步编码,那可以修复这些错误吗?两步编码到底是做什么的?我使用的命令几乎就是这个答案 https://askubuntu.com/a/718300/396175 上的命令。那么我应该如何(哪个参数)应用两步编码?

谢谢!

最佳答案

I'm encoding several videos to x265 format to save disk storage, and on some of them some errors happen.



看起来像解码错误。输入有问题,因此在读取文件时会显示错误。如果输入播放正常,或者输出看起来不错,则忽略它们。

If I add 2-step encoding, that can fix these errors?



不,这是一个解码问题。但是,您的 ffmpeg是旧的所以考虑downloading一个新的,看看它的解码是否更健壮(可能不是,但你永远不知道)。

What exactly does 2-step encoding does?



我在您提供的链接中没有提到 2-pass 编码。我假设“2-step”指的是“2-pass”,但如果我弄错了,请纠正我。 2-pass 编码通常用于针对特定的输出文件大小。否则,只需对提供恒定速率因子的编码器(例如 x264 和 x265)使用单 channel 。参见 FFmpeg 维基:H.264 & H.265了解更多信息。

(which parameter) should I use to apply 2-step encoding?



使用 -pass 启动 2-pass选项。有关示例,请参见上面的 wiki 链接。但是,您不需要执行 2-pass 编码。只需使用 -crf如您提供的链接所示。

关于video - ffmpeg:两步编码是否解决了视频转换过程中的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47291412/

相关文章:

ios - 带有小框架的 UIWebView 中的 Youtube 视频

Android MediaCodec - 将音频动态编码为 aac

linux - 使用 ffmpeg 将视频转换为 MP4 (H.264/AAC)

c# - 使用 FFMpeg 显示视频转换的进度

php - php 中 JavaScript 的转义括号

video - 如何将各种视频文件格式转换为 FLV(用于 FlowPlayer)?

android - YouTube API 在全屏模式下变为空白 - Android

c++ - FFmpeg:使用自定义线程池进行并行编码

video - VLC 桌面流媒体

php - 字符编码 : Changing file from MacRoman to UTF-8 breaks string