当前位置: 首页 > 知识库问答 >
问题:

FFMPEG-连接未知格式的视频

臧兴学
2023-03-14

我在开发一个应用程序。人们从他们的手机上传视频,从其他地方。

使用PHP中的CMS(它是应用程序开发的语言),我需要生成一个独特的视频与这些部分上传。

ffmpeg -i concat:IMG_1916.mp4\|IMG_1917.mp4 -c copy videoLoop.mp4
ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers

built with Apple LLVM version 8.0.0 (clang-800.0.42.1)

configuration: --prefix=/usr/local/Cellar/ffmpeg/3.2.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-vda
    libavutil      55. 34.101 / 55. 34.101
    libavcodec     57. 64.101 / 57. 64.101
    libavformat    57. 56.101 / 57. 56.101
    libavdevice    57.  1.100 / 57.  1.100
    libavfilter     6. 65.100 /  6. 65.100
    libavresample   3.  1.  0 /  3.  1.  0
    libswscale      4.  2.100 /  4.  2.100
    libswresample   2.  3.100 /  2.  3.100
    libpostproc    54.  1.100 / 54.  1.100

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f8515000000] Found duplicated MOOV Atom. Skipped it Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'concat:IMG_1916.mp4|IMG_1917.mp4':
Metadata:

    encoder         : Lavf57.66.102
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41

Duration: 00:00:04.27, start: 0.000000, bitrate: 26792 kb/s

    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1920x1080, 11978 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)

Metadata:

    handler_name    : VideoHandler

Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 120 kb/s (default)
Metadata:

    handler_name    : SoundHandler

Output #0, mp4, to 'videoLoop.mp4':

Metadata:

    compatible_brands: isomiso2avc1mp41
    major_brand     : isom
    minor_version   : 512
    encoder         : Lavf57.56.101
    Stream #0:0(und): Video: h264 (Constrained Baseline) ([33][0][0][0] / 0x0021), yuv420p, 1920x1080, q=2-31, 11978 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 30k tbc (default)

Metadata:

    handler_name    : VideoHandler

Stream #0:1(und): Audio: aac (LC) ([64][0][0][0] / 0x0040), 44100 Hz, mono, 120 kb/s (default)
Metadata:

    handler_name    : SoundHandler

Stream mapping:

    Stream #0:0 -> #0:0 (copy)
    Stream #0:1 -> #0:1 (copy)

Press [q] to stop, [?] for help
frame=  127 fps=0.0 q=-1.0 Lsize=    6264kB time=00:00:04.22 bitrate=12142.8kbits/s speed= 376x    
video:6196kB audio:63kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.076698%

为什么不加入2?

上传的视频,将是非常不同的格式,所以我不能定义编解码器。

共有1个答案

端木宏盛
2023-03-14

您必须在连接之前使所有输入都相似,然后使用concat筛选器。一个粗略的例子(当然,您必须根据自己的需要定制它):

ffmpeg -i input0 -i input1 -filter_complex \
"[0:v]fps=25,scale=1280:720,format=yuv420p,setsar=1,setpts=PTS-STARTPTS[v0]; \
 [1:v]fps=25,scale=1280:720,format=yuv420p,setsar=1,setpts=PTS-STARTPTS[v1]; \
 [0:a]aformat=channel_layouts=stereo:sample_rates=44100,asetpts=PTS-STARTPTS[a0]; \
 [1:a]aformat=channel_layouts=stereo:sample_rates=44100,asetpts=PTS-STARTPTS[a1]; \
 [v0][a0][v1][a1]concat=n=2:v=1:a=1[v][a]" \
-map "[v]" -map "[a]" -c:v libx264 -c:a aac -movflags +faststart output.mp4
 类似资料:
  • ffmpeg 是 *nix 系统下最流行的音视频处理库,功能强大,并且提供了丰富的终端命令,实是日常视频处理的一大利器! 实例 flac 格式转 mp3 音频格式转换非常简单:ffmpeg -i input.flac -acodec libmp3lame output.mp3。 ffmpeg 将会使用 libmp3lame 解码器将 input.flac 文件转换为 mp3 格式的 output.

  • 我正在尝试使用ffmpeg和使用以下命令压缩一个视频。 然而,生成的视频的大小大于原始视频的大小。有没有人可以指出为什么会发生这种情况,如果有其他命令我应该使用。

  • 问题内容: 我正在尝试合并一些视频,但出现时间戳错误。 我试图通过相同的尺寸,帧速率,采样率以及在没有音频轨道时添加音轨来使它们都相等。 错误消息如下所示:输出流0:0中的非单调DTS;前一个:8052684,当前:4127401; 更改为8052685。这可能会导致输出文件中的时间戳不正确。 问题答案: 因为这纯粹是一个ffmpeg使用问题,所以我将省略Python。由于我假设您的输入将是任意的

  • 我在尝试连接FFMPEG中的多个文件时遇到了一个问题;我的目标是通过串联不同类型的幻灯片来创建视频演示文稿: (a)图像幻灯片,通过循环帧片刻转换成视频。这些类型的幻灯片没有音频,所以我为它们添加了静音音轨: (b)视频幻灯片,它有一个覆盖的水印,并持续到视频结束。如果文件不包含音频,则添加的方式与前面的情况相同: 因此,一旦我有了所有生成的文件和一个包含所有文件名的。txt文件,我想使用简单的命

  • 问题内容: 我在重构的旧系统中有以下SQL语句。这是此问题的缩写视图,只是暂时返回count(*)。 它会生成大量记录并杀死系统,但是有人可以解释其语法吗?可以用其他任何方式表达吗? 表1包含419行 表2包含3374行 Table3包含28182行 编辑: 建议重新格式化 问题答案: 为了提高可读性,我重新构造了查询…从表1的最顶层开始,然后将其绑定到Table3,然后将table3绑定到tab