我们正在尝试使用以下选项将电影/剪辑转码为 ProRes LT:
ffmpeg -threads "16" -i "$2" -flags +ildct -vcodec prores -profile 1 -qscale 4 \
-threads "16" -r 24 -vf "yadif=0:-1:-1, scale=1920:1080" -aspect 16:9 \
-acodec pcm_s32le
问题是我们有一个只进行转码的转码服务器,它有 16 个线程,但只使用一个。FFmpeg 从 14 fps 开始,然后降到 8 fps 左右的转码速率:
frame= 9 fps=0.0 q=0.0 size= 2647kB time=00:00:00.30 bitrate=72271.8kbits/s dup=1 drop=0
frame= 15 fps= 14 q=0.0 size= 5623kB time=00:00:00.50 bitrate=92120.9kbits/s dup=1 drop=0
frame= 20 fps= 13 q=0.0 size= 8268kB time=00:00:00.66 bitrate=101600.1kbits/s dup=1 drop=0
frame= 25 fps= 12 q=0.0 size= 10964kB time=00:00:00.83 bitrate=107785.2kbits/s dup=1 drop=0
frame= 30 fps= 11 q=0.0 size= 13678kB time=00:00:01.00 bitrate=112052.5kbits/s dup=1 drop=0
frame= 35 fps= 10 q=0.0 size= 16407kB time=00:00:01.16 bitrate=115204.0kbits/s dup=1 drop=0
frame= 40 fps= 10 q=0.0 size= 19131kB time=00:00:01.33 bitrate=117539.2kbits/s dup=1 drop=0
frame= 45 fps=9.8 q=0.0 size= 21842kB time=00:00:01.50 bitrate=119286.8kbits/s dup=1 drop=0
frame= 50 fps=9.6 q=0.0 size= 24572kB time=00:00:01.66 bitrate=120776.7kbits/s dup=1 drop=0
frame= 54 fps=9.4 q=0.0 size= 26755kB time=00:00:01.80 bitrate=121767.1kbits/s dup=1 drop=0
frame= 58 fps=9.3 q=0.0 size= 28946kB time=00:00:01.93 bitrate=122653.0kbits/s dup=1 drop=0
frame= 62 fps=9.2 q=0.0 size= 31150kB time=00:00:02.06 bitrate=123474.0kbits/s dup=1 drop=0
frame= 66 fps=9.1 q=0.0 size= 33352kB time=00:00:02.20 bitrate=124189.0kbits/s dup=1 drop=0
frame= 70 fps=9.0 q=0.0 size= 35569kB time=00:00:02.33 bitrate=124877.8kbits/s dup=1 drop=0
frame= 74 fps=8.9 q=0.0 size= 37787kB time=00:00:02.46 bitrate=125494.2kbits/s dup=1 drop=0
frame= 78 fps=8.8 q=0.0 size= 40010kB time=00:00:02.60 bitrate=126062.6kbits/s dup=1 drop=0
frame= 82 fps=8.7 q=0.0 size= 42229kB time=00:00:02.73 bitrate=126563.9kbits/s dup=1 drop=0
frame= 86 fps=8.6 q=0.0 size= 44434kB time=00:00:02.86 bitrate=126979.3kbits/s dup=1 drop=0
frame= 90 fps=8.6 q=0.0 size= 46641kB time=00:00:03.00 bitrate=127361.4kbits/s dup=1 drop=0
frame= 94 fps=8.5 q=0.0 size= 48846kB time=00:00:03.13 bitrate=127706.8kbits/s dup=1 drop=0
frame= 98 fps=8.5 q=0.0 size= 51046kB time=00:00:03.26 bitrate=128010.0kbits/s dup=1 drop=0
frame= 101 fps=8.3 q=0.0 size= 52701kB time=00:00:03.36 bitrate=128235.3kbits/s dup=1 drop=0
...
我们用谷歌搜索过,但没有找到任何有效的解决方案,你们中有人遇到过同样的问题吗?如果遇到过,你最后是怎么解决的?
@LordNeckbeard 以下是转码的前 50 行和后 50 行:
ffmpeg 版本 0.10.2.git 版权所有 (c) 2000-2012 FFmpeg 开发人员 于 2013 年 1 月 16 日 15:47:31 使用 gcc 4.1.2 20080704 (Red Hat 4.1.2-51) 构建 配置:--enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvpx --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --disable-ffplay --enable-shared --enable-gpl --enable-postproc --enable-nonfree --enable-avfilter --enable-pthreads --extra-cflags=-fPIC --enable-libfreetype libavutil 51. 55.100 / 51. 55.100 libavcodec 54. 23.100 / 54. 23.100 libavformat 54. 6.101 / 54. 6.101 libavdevice 54. 0.100 / 54. 0.100 libavfilter 2.77.100 / 2.77.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 [h264 @ 0x1a574240] 将重新排序缓冲区增加到 1 输入 #0,mov,mp4,m4a,3gp,3g2,mj2,来自‘/content/flowcenter/highres/dokfest/ftp_upload_20131108_2/Cacheu2.mov’: 元数据: 主要品牌:qt 次要版本:537199360 兼容品牌:qt 创作时间:2012-10-17 05:46:57 LOGGER:将帧数设置为 14950 时长:00:09:58.00,开始:0.000000,比特率:24157 kb/s 流 #0:0(eng):视频:h264(主)(avc1 / 0x31637661),yuv420p,1920x1080,23863 kb/s,25 fps,25 tbr,2500 tbn,5k tbc 元数据: 创作时间:2012-10-17 08:24:55 handler_name :Apple 视频媒体处理程序 流 #0:1(eng):音频:aac(mp4a / 0x6134706D),48000 Hz,立体声,s16,289 kb/s 元数据: 创作时间:2012-10-17 08:25:00 handler_name :Apple 声音媒体处理程序 流 #0:2(eng):数据:无(tmcd / 0x64636D74) 元数据: 创作时间:2012-10-17 08:27:50 handler_name :时间码媒体处理程序 时间码:01:00:00:00 请使用 -profile:a 或 -profile:v,-profile 不明确 请使用 -q:a 或 -q:v,-qscale 不明确 [yadif @ 0x1a5a6e40] 模式:0 奇偶校验:-1 自动启用:-1 [缓冲区@0x1a5afb00] w:1920 h:1080 pixfmt:yuv420p tb:1/2500 sar:0/1 sws_param:flags=2 [buffersink @ 0x1a5afa80] 未提供不透明字段 [比例@0x1a5afc60] w:1920 h:1080 fmt:yuv420p sar:0/1 -> w:1920 h:1080 fmt:yuv422p10le sar:0/1 标志:0x4 [aformat @ 0x1a665fa0] 在过滤器“Parsed_anull_0”和过滤器“aformat”之间自动插入过滤器“自动插入重采样器 0” [aresample @ 0x1a5daf00] chl:立体声 fmt:s16 r:48000Hz -> chl:立体声 fmt:s32 r:48000Hz 输出 #0,mov,到‘/content/flowcenter/other/Cacheu2_2_1.mov.mov’: 元数据: 主要品牌:qt 次要版本:537199360 兼容品牌:qt 创作时间:2012-10-17 05:46:57 编码器:Lavf54.6.101 流 #0:0(eng):视频:prores (apcs) (apcs / 0x73637061),yuv422p10le,1920x1080 [SAR 1:1 DAR 16:9],q=2-31,200 kb/s,25 tbn,25 tbc 元数据: 创作时间:2012-10-17 08:24:55 handler_name :Apple 视频媒体处理程序 流 #0:1(eng):音频:pcm_s32le(in32 / 0x32336E69),48000 Hz,立体声,s32,3072 kb/s 元数据: 创作时间:2012-10-17 08:25:00 handler_name :Apple 声音媒体处理程序 流映射: 流 #0:0 -> #0:0 (h264 -> prores) 流 #0:1 -> #0:1 (aac -> pcm_s32le)
视频:7615955kB 音频:224272kB 全局标头:0kB 多路复用开销 0.004298% 正在执行: “/home/mfc/ffmpeg/one_for_all.mov.sh” 1281038 “/content/flowcenter/highres/dokfest/ftp_upload_20131108_2/Cacheu2.mov” “/content/flowcenter/other/Cacheu2_2_1.mov.mov” 1c ffmpeg -threads 16 -i /content/flowcenter/highres/dokfest/ftp_upload_20131108_2/Cacheu2.mov -flags +ildct -vcodec prores -profile 1 -qscale 4 -threads 16 -vf yadif=0:-1:-1,scale=1920:1080 -aspect 16:9 -acodec pcm_s32le /content/flowcenter/other/Cacheu2_2_1.mov.mov 需要 1679 秒
无论如何,我认为发布整个视频太长了。当我再次转码时,我发现了一个微小的变化,因为我找不到昨天剪辑的日志文件。
@Rajib 抱歉,我两次使用了 -threads,这是我的错,我只是认为我可能将线程命令放在了脚本的另一个位置,这样它实际上就会使用该命令,但它不起作用,所以我再次删除了它。至于命令 -i“$2”,我们的软件使用 ffmpeg 命令和变量的混合,据我所知,$2 是描述输入文件路径的另一种方式,因此我们不必再使用 xyz.mov。是的,我们想要 1080p 质量,即使这意味着我们必须升级剪辑。