Opened 13 years ago
Closed 12 years ago
#1268 closed enhancement (invalid)
Shorthand for all streams c:all
Reported by: | burek | Owned by: | |
---|---|---|---|
Priority: | wish | Component: | undetermined |
Version: | unspecified | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Hi,
It would be easier to type:
-c:all copy
instead of
-c:v copy -c:a copy -c:s copy -c:d copy -c:t copy
if that option is implemented.
Change History (4)
comment:1 by , 13 years ago
comment:3 by , 13 years ago
cehoyos, this is 3rd or 4th time that I get impression that you are not even reading these messages on trac, but rather just reply to them, only to make a reply.. no offense, but that's the feeling I got so far.. what command line and output do you need, when this is a wish/enhancement request?
command:
ffmpeg -i INPUT -c copy OUTPUT
expected results: Copy EVERYTHING from the input container and remux it into the output container
real results: FFmpeg copies one video + one audio stream to the output container (by choosing a best pick for streams, I guess)
ffmpeg -i out.mp4 -c copy out2.mp4 ffmpeg version N-40213-g9f98a8e Copyright (c) 2000-2012 the FFmpeg developers built on May 1 2012 17:07:09 with gcc 4.6.3 configuration: --prefix=/root/ffmpeg-static/32bit --arch=x86_32 --extra-cflags='-m32 -I/root/ffmpeg-static/32bit/include -static' --extra-ldflags='-m32 -L/root/ffmpeg-static/32bit/lib -static' --extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx libavutil 51. 48.100 / 51. 48.100 libavcodec 54. 17.100 / 54. 17.100 libavformat 54. 3.100 / 54. 3.100 libavdevice 53. 4.100 / 53. 4.100 libavfilter 2. 72.100 / 2. 72.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 11.100 / 0. 11.100 libpostproc 52. 0.100 / 52. 0.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf54.3.100 Duration: 00:00:12.74, start: 0.000000, bitrate: 405 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 352x288, 6 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 128 kb/s Metadata: handler_name : SoundHandler Stream #0:2(und): Audio: mp2 (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 127 kb/s Metadata: handler_name : SoundHandler Stream #0:3(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 129 kb/s Metadata: handler_name : SoundHandler Output #0, mp4, to 'out2.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf54.3.100 Stream #0:0(und): Video: h264 (![0][0][0] / 0x0021), yuv420p, 352x288, q=2-31, 6 kb/s, 30 Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: mp3 (i[0][0][0] / 0x0069), 44100 Hz, stereo, 128 kb/s 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= 379 fps=0.0 q=-1.0 Lsize= 223kB time=00:00:12.56 bitrate= 145.2kbits/s video:10kB audio:200kB global headers:0kB muxing overhead 6.214687%
If I'm not wrong this command would need to add -map 0 to get the desired effect (to copy everything from the input to the output format).
comment:4 by , 12 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
-map != -codec, I don't think this is a valid ticket
Further discussion on IRC channel revealed that there is -c which is equivalent for this -c:all suggestion, but the problem with -c (or rather with -map) is because -map 0 is not the default behavior. So, here is the problem. When a user types:
what he is expecting is to remux his media into another container, but what he gets is not what he was expecting, because, in a multiple streams media file, ffmpeg will choose the "best pick" for multiple audio streams for example and will leave other audio streams not copied.
So, my suggestion was actually to make -map 0 the default option, making ffmpeg copy all streams, not just to pick "the best ones" out.