Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在FFmpeg中使用Concat过滤器合并视频文件_Android_Ffmpeg_Video Codecs - Fatal编程技术网

Android 在FFmpeg中使用Concat过滤器合并视频文件

Android 在FFmpeg中使用Concat过滤器合并视频文件,android,ffmpeg,video-codecs,Android,Ffmpeg,Video Codecs,我在android应用程序中使用FFmpeg压缩不同编解码器的视频文件。 我阅读了FFmpeg文档,并尝试了以下内容 1。ffmpeg-i“concat:input1.mpg | input2.mpg”-c copy output.mp4(仅适用于mpg文件) 我对3gp文件尝试了这两种方法,但它在流过滤器中抛出了一个错误。第二种方法将不应该执行的.ts文件存储在设备中,并且我丢失了视频质量 当我在谷歌上搜索时,我发现FFmpeg提供了一种使用不同编解码器压缩文件的方法。所以我在一个步骤中尝试了

我在android应用程序中使用FFmpeg压缩不同编解码器的视频文件。 我阅读了FFmpeg文档,并尝试了以下内容

1。ffmpeg-i“concat:input1.mpg | input2.mpg”-c copy output.mp4
(仅适用于mpg文件)

我对3gp文件尝试了这两种方法,但它在流过滤器中抛出了一个错误。第二种方法将不应该执行的.ts文件存储在设备中,并且我丢失了视频质量

当我在谷歌上搜索时,我发现FFmpeg提供了一种使用不同编解码器压缩文件的方法。所以我在一个步骤中尝试了以下命令,而没有将文件存储在设备中

fmpeg -i 1.mp4 -i 2.3gp -i 3.mpg -filter_complex '[0:0] [0:1] [1:0] [1:1]
 [2:0] [2:1] concat=n=3:v=1:a=1 [a] [v] ' -map '[a]' -map '[v]' -c copy output.mp4 
它引发以下异常:

ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jun 25 2013 20:34:51 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: 
  libavutil      52. 18.100 / 52. 18.100
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.104 / 54. 63.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 42.103 /  3. 42.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
F.mp4: No such file or directory
tsk@tsk:~/Android/Backups/android-ffmpeg-x264/Project/jni$ ffmpeg -i 1.mp4 -i 2.mp4 -filter_complex '[0:1] [0:0] [1:1] [1:0] concat=n=2:v=1:a=1 [v] [a]' -map '[v]' -map '[a]' output.mp4
ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jun 25 2013 20:34:51 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: 
  libavutil      52. 18.100 / 52. 18.100
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.104 / 54. 63.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 42.103 /  3. 42.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: mp41
    creation_time   : 1970-01-01 00:00:00
  Duration: 00:00:04.04, start: 0.000000, bitrate: 1457 kb/s
    Stream #0:0(und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 1454 kb/s, SAR 349:320 DAR 349:240, 25 fps, 25 tbr, 25 tbn, 25 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '2.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: mp41
    creation_time   : 1970-01-01 00:00:00
  Duration: 00:00:04.04, start: 0.000000, bitrate: 1498 kb/s
    Stream #1:0(und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 1495 kb/s, SAR 349:320 DAR 349:240, 25 fps, 25 tbr, 25 tbn, 25 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
Stream specifier ':1' in filtergraph description [0:1] [0:0] [1:1] [1:0] concat=n=2:v=1:a=1 [v] [a] matches no streams.
我搜索了一下,但还没有找到解决办法


非常感谢您的帮助。

您需要包含完整的ffmpeg控制台输出,而不仅仅是一个选择。@Lord我给了您完整的ffmpeg控制台。请看一看。@vijay,您有过这样的工作吗?运行同一个命令尝试连接3种不同的格式,有些有音频,有些没有。你能正常工作吗?!你能提供连接代码吗?
ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jun 25 2013 20:34:51 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: 
  libavutil      52. 18.100 / 52. 18.100
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.104 / 54. 63.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 42.103 /  3. 42.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
F.mp4: No such file or directory
tsk@tsk:~/Android/Backups/android-ffmpeg-x264/Project/jni$ ffmpeg -i 1.mp4 -i 2.mp4 -filter_complex '[0:1] [0:0] [1:1] [1:0] concat=n=2:v=1:a=1 [v] [a]' -map '[v]' -map '[a]' output.mp4
ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jun 25 2013 20:34:51 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: 
  libavutil      52. 18.100 / 52. 18.100
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.104 / 54. 63.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 42.103 /  3. 42.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: mp41
    creation_time   : 1970-01-01 00:00:00
  Duration: 00:00:04.04, start: 0.000000, bitrate: 1457 kb/s
    Stream #0:0(und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 1454 kb/s, SAR 349:320 DAR 349:240, 25 fps, 25 tbr, 25 tbn, 25 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '2.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: mp41
    creation_time   : 1970-01-01 00:00:00
  Duration: 00:00:04.04, start: 0.000000, bitrate: 1498 kb/s
    Stream #1:0(und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 1495 kb/s, SAR 349:320 DAR 349:240, 25 fps, 25 tbr, 25 tbn, 25 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
      handler_name    : VideoHandler
Stream specifier ':1' in filtergraph description [0:1] [0:0] [1:1] [1:0] concat=n=2:v=1:a=1 [v] [a] matches no streams.