我正在尝试使用FFMPEG concat demuxer来创建单个视频的“循环”。
我首先尝试运行此命令:
ffmpeg -f concat -i behzad.txt -c:v copy output_concat.avi
我的输入文本文件如下:
file 'G:\Masters_Thesis_Files\Honda_Database\Database1\Training\videos\behzad\behzad.avi'
file 'G:\Masters_Thesis_Files\Honda_Database\Database1\Training\videos\behzad\behzad.avi'
输入文件采用原始格式。
运行命令后,我得到以下输出到控制台,生成的视频就是我输入视频文件的第一帧。
ffmpeg version N-74286-ge5774f2 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9.3 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --
enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-l
ibilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enab
le-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --en
able-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --ena
ble-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc
--enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enabl
e-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --ena
ble-decklink --enable-zlib
libavutil 54. 30.100 / 54. 30.100
libavcodec 56. 57.100 / 56. 57.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 32.100 / 5. 32.100
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100
Input #0, concat, from 'behzad.txt':
Duration: N/A, start: 0.000001, bitrate: 110806 kb/s
Stream #0:0: Video: rawvideo, bgr24, 640x480, 110806 kb/s, 14.99 fps, 14.99
tbr, 14.99 tbn, 14.99 tbc
File 'output_concat.avi' already exists. Overwrite ? [y/N] y
Output #0, avi, to 'output_concat.avi':
Metadata:
ISFT : Lavf56.40.101
Stream #0:0: Video: rawvideo, bgr24, 640x480, q=2-31, 110806 kb/s, 14.99 fps
, 14.99 tbr, 14.99 tbn, 14.99 tbc
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
[avi @ 0000000004723360] Non-monotonous DTS in output stream 0:0; previous: 1186
24821151886176, current: 118624821151886176; changing to 118624821151886177. Thi
s may result in incorrect timestamps in the output file.
[avi @ 0000000004723360] Too large number of skipped frames 118624821151886176 >
60000
av_interleaved_write_frame(): Invalid argument
[avi @ 0000000004723360] Too large number of skipped frames 118624821151886176 >
60000
frame= 2 fps=0.0 q=-1.0 Lsize= 906kB time=-00:00:00.00 bitrate=N/A
video:1800kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing
overhead: unknown
Conversion failed!
我还试图在编解码器设置为h264的情况下运行命令,而不是仅仅复制编解码器。当我运行此命令时,输出到控制台仍然有DTS错误,但是,我的输出视频包含整个输入视频而不仅仅是第一帧。它没有像我期望的那样重复视频。
我还应该指定,我在Windows中使用最新版本的Zeranoe FFMPEG运行这些命令。
我对FFMPEG还是比较缺乏经验,这个过程的某些部分我做错了吗?