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

Android 打开输出流#0:0的编码器时出现淡入淡出视频错误-可能是不正确的参数,如比特率、速率、宽度或高度,android,ffmpeg,android-ffmpeg,video-editing,Android,Ffmpeg,Android Ffmpeg,Video Editing,我正在使用下面的命令将淡入淡出效果添加到我的视频中 {"-y", "-ss", "" + startMs / 1000, "-t", "" + (endMs - startMs) / 1000, "-i", inputPath, "-acodec", "copy", "-vf", "fade=t=in:st=0:d=5,fade=t=out:st=" + String.valueOf((endMs - startMs) / 1000 - 5) + ":d=5", outputPath}; 我收

我正在使用下面的命令将淡入淡出效果添加到我的视频中

{"-y", "-ss", "" + startMs / 1000, "-t", "" + (endMs - startMs) / 1000, "-i", inputPath, "-acodec", "copy", "-vf", "fade=t=in:st=0:d=5,fade=t=out:st=" + String.valueOf((endMs - startMs) / 1000 - 5) + ":d=5", outputPath};
我收到下面的错误-

“故障3.3 5.3gpffmpeg版本n3.0.1版权所有(c)2000-2016 FFmpeg开发人员\n使用gcc 4.8(gcc)构建\n配置: --目标os=linux——交叉前缀=/home/vagrant/SourceCode/ffmpeg-android/toolschain-android/bin/arm-linux-androideabi- --arch=arm--cpu=cortex-a8--enable runtime-cpudetect--sysroot=/home/vagrant/SourceCode/ffmpeg-android/toolschain-android/sysroot --enable pic--enable-libx264--enable libass--enable libfreetype--enable libfribidi--enable-libmp3lame--enable fontconfig--enable pthreads--disable debug调试--disable ffserver--enable-version3--enable硬编码表--disable ffplay--disable ffprobe--enable gpl--enable yasm disable doc disable共享--enable static--pkg config=/home/vagrant/SourceCode/ffmpeg-android/ffmpeg-pkg-config--prefix=/home/vagrant/SourceCode/ffmpeg-android/build/armeabi-v7a--extra-cflags='-I/home/vagrant/SourceCode/ffmpeg-android/toolschain-android/include -U_-FORTIFY_-SOURCE-D_-FORTIFY_-SOURCE=2-fno严格溢出-fstack-protector-all'--extra-ldflags='-L/home/vagrant/SourceCode/ffmpeg-android/toolschain-android/lib -Wl,-z,relro-Wl,-z,now-pie'-extra libs='-lpng-lexpat-lm'-extra cxflags=\n libavutil 55.17.103/55.17.103\n libavcodec 57.24.102/57.24.102\n libavformat 57.25.100/ 57.25.100\n libavdevice 57.0.101/57.0.101\n libavfilter 6.31.100/6.31.100\n libswscale 4.0.100/4.0.100\n libswresample 2.0.101/2.0.101\n libpostroc 54.0.100/ 54.0.100\n输入#0、mov、mp4、m4a、3gp、3g2、mj2,来自“/storage/simulated/0/DCIM/Camera/VID”\u 20180825\u 071734915.3gp”:\n 元数据:\n主要\u品牌:3gp4\n次要\u版本:0\n
兼容品牌:isom3gp4\n创建时间:2018-08-25 01:47:47\n com.android.version:8.0.0\n持续时间:00:00:10.83, 开始:0.000000,比特率:17217 kb/s\n流#0:0(英文):视频: h264(高)(avc1/0x31637661),yuv420p(电视,未知/bt470bg/未知), 1920x10816756kb/s,SAR 1:1 DAR 16:9,29.49fps,29.58 tbr,90k tbn,180k tbc(默认值)\n元数据:\n旋转:90\n
创建时间:2018-08-25 01:47:47\n处理程序名称: VideoHandle\n侧数据:\n displaymatrix:旋转-90.00 度\n流#0:1(英语):音频:aac(LC)(mp4a/0x6134706D), 48000 Hz,单声道,fltp,128 kb/s(默认值)\n元数据:\n
创建时间:2018-08-25 01:47:47\n处理程序名称: SoundHandle\n[h263@0xf49ff400]H.263不支持分辨率 高于2048x1152\n输出0,3gp,至 “/storage/emulated/0/Movies/fade\u video.3gp”:\n元数据:\n
主要\u品牌:3gp4\n次要\u版本:0\n
兼容品牌:isom3gp4\n com.android.version:8.0.0\n
流#0:0(英文):视频:h263,无,q=2-31128 kb/s,SAR 1:1 DAR 0:0,29.58 fps(默认值)\n元数据:\n处理程序\u名称: VideoHandle\n创建时间:2018-08-25 01:47:47\n
编码器:Lavc57.24.102 h263\n流#0:1(英语):音频:aac (LC)(mp4a/0x6134706D),48000赫兹,单声道,128 kb/s(默认值)\n
元数据:\n创建时间:2018-08-25 01:47:47\n
处理程序名称:SoundHandle\n流映射:\n Stream#0:0->#0:0 (h264(本机)->h263(本机))\n流0:1->0:1(副本)\n错误 打开输出流编码器时#0:0-可能不正确 比特率、速率、宽度或高度等参数\n“


为什么在上面的命令中出现此错误?欢迎提供任何帮助。

如日志所述,H.263不支持2048x1152以上的分辨率。您的源流是1920x1080,但旋转了90度,因此ffmpeg会自动将其旋转到1080x1920,这不符合限制。可以在淡入淡出后添加缩放过滤器,以便有条件地缩小尺寸

scale='if(lte(iw,2048)*lte(ih,1152),iw,if(gt(dar,2048/1152),2048,2*trunc(oh*dar/2)):'if(lte(iw,2048)*lte(ih,1152),ih,if(gt(dar,2048/1152),2*trunc(ow/dar/2),1152))。


x和y表达式首先检查输入是否大于2048x1152。如果没有,则保留原始决议。如果是,检查输入的显示比率。如果大于2048:1152,则将宽度缩小到2048并按比例调整高度,否则将高度缩小到1152并按比例调整宽度
dar
表示显示纵横比。

如日志所述,H.263不支持分辨率高于2048x1152。您的源流是1920x1080,但旋转了90度,因此ffmpeg会自动将其旋转到1080x1920,这不符合限制。您可以在淡入淡出后添加缩放过滤器以缩小尺寸。@Gyan好的。。因此,如果分辨率为2048x1152或更低,则不应缩放我的视频。。但如果分辨率高于此值,则应缩小我的视频。。添加
scale='min(2048,iw):'min(1152,ih)
是否符合我的要求并解决我的问题?如-
{-y',“-ss”,“+startMs/1000,“t”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,(gt)(dar,2048/1152),ow/dar,1152)“
@Gyan很高兴你能把它作为一个答案并加以解释,这样我就能正确理解并接受它作为正确的答案。参数中的“dar”是什么?所以我的命令应该是-
{“-y”、“-ss”、“+startMs/1000”、“+(endMs-startMs)/1000”、“-i”、inputFilePath、-acodec”、“copy”、“-vf”、”fade=t=in:st=0:d=5,fade=t=out:st=“+String.valueOf((endMs-startMs)/1000-5)+”:d=5,scale='if(lte(iw,2048)*lte(ih,1152),iw,if(gt(dar,2048/1152),2048,oh*dar)):'if(lte(iw,2048)*lte(i