[FFmpeg-trac] #4290(undetermined:new): Don't abort when existing output file is detected; instead skip to next output file
FFmpeg
trac at avcodec.org
Fri Jan 30 11:29:34 CET 2015
#4290: Don't abort when existing output file is detected; instead skip to next
output file
-------------------------------------+-------------------------------------
Reporter: Psychonaut | Type:
Status: new | enhancement
Component: | Priority: normal
undetermined | Version: git-
Keywords: | master
Blocking: | Blocked By:
Analyzed by developer: 0 | Reproduced by developer: 0
-------------------------------------+-------------------------------------
'''Summary of the bug:''' By default, FFmpeg prompts the user when it
detects an existing output file. If the user answers no, the program
aborts. (The {{{-n}}} option has the same effect.) This is inconvenient
when the command line contains several output files, some of which exist
and some of which do not, and the user simply wants to create all non-
existing output files. This is a very common use case when, for example,
you are splitting a huge input file into several output files, the process
gets interrupted partway through, and you want to resume it.
'''How to reproduce:'''
{{{
$ ls *.mkv
output1.mkv
$ ffmpeg -i input.avi -ss 2.80813 -to 224.985 -acodec flac -c:v libx264 -n
output1.mkv -ss 741.965 -to 958.609 -acodec flac -c:v libx264 -n
output2.mkv
ffmpeg version N-43893-ga73c411- http://johnvansickle.com/ffmpeg/
Copyright (c) 2000-2015 the FFmpeg developers
built on Jan 30 2015 01:32:44 with gcc 4.9.2 (Debian 4.9.2-10)
configuration: --enable-gpl --enable-version3 --disable-shared
--disable-debug --enable-runtime-cpudetect --enable-libmp3lame --enable-
libx264 --enable-libx265 --enable-libwebp --enable-libspeex --enable-
libvorbis --enable-libvpx --enable-libfreetype --enable-fontconfig
--enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb
--enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-
gray --enable-libopenjpeg --enable-libopus --enable-libass --enable-gnutls
--enable-libvidstab --cc=gcc-4.9
libavutil 54. 18.100 / 54. 18.100
libavcodec 56. 21.101 / 56. 21.101
libavformat 56. 19.100 / 56. 19.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 9.101 / 5. 9.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, avi, from 'input.avi':
Metadata:
encoder : Lavf56.4.101
Duration: 02:42:40.58, start: 0.000000, bitrate: 16035 kb/s
Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), bgr0, 384x256, 14614
kb/s, 59.83 fps, 59.83 tbr, 59.83 tbn, 59.83 tbc
Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2
channels, s16, 1411 kb/s
File 'output1.mkv' already exists. Exiting.
}}}
Above is a minimal example with just two output files. The problem is, of
course, more serious when the command line contains dozens of output
files.
'''Suggested fix:''' In interactive mode, when asking the user if a given
output file is to be overwritten, there should be three choices: (y)es,
(n)o, and (a)bort. (N)o should simply skip the current output file, and
processing should continue with the next output file on the command line.
(This should be the default option.) (A)bort should cause FFmpeg to
immediately quit. The {{{-n}}} command-line option should have the same
effect as the user typing (n)o to every prompt. If there is any use case
for the old behaviour, then another command line option such as
{{{-abort}}} could be added which has the same effect as the user typing
(a)bort to every prompt.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/4290>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list