我要转换的视频已上传到http://www.filedropper.com/video_17
我使用以下命令转换文件:
ffmpeg -i archive.iva -c copy -map 0 output.mp4 -vsync 2 -y;
文件长度应为1分钟左右,但转换后仅为7秒
我做错了什么?
修改
控制台输出:
rupesh@rupesh-Lenovo-IdeaPad-Y510P:~/video$ ffmpeg -i archive.iva -c copy -map 0 output.mp4 -vsync 2 -y;
ffmpeg version N-80026-g936751b Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir=/usr/share/man --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libfreetype --enable-gnutls --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvidstab
libavutil 55. 24.100 / 55. 24.100
libavcodec 57. 42.100 / 57. 42.100
libavformat 57. 36.100 / 57. 36.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 45.100 / 6. 45.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
[mjpeg @ 0x3a2eda0] Format mjpeg detected only with low score of 25, misdetection possible!
Input #0, mjpeg, from 'archive.iva':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 640x480, 25 fps, 25 tbr, 1200k tbn
[mp4 @ 0x3a309c0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
Output #0, mp4, to 'output.mp4':
Metadata:
encoder : Lavf57.36.100
Stream #0:0: Video: mjpeg (l[0][0][0] / 0x006C), yuvj422p(pc, bt470bg/unknown/unknown), 640x480, q=2-31, 25 fps, 25 tbr, 1200k tbn
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
frame= 190 fps=0.0 q=-1.0 Lsize= 5909kB time=00:00:07.56 bitrate=6403.2kbits/s speed= 127x
video:5908kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.026134%
答案 0 :(得分:1)
此处不需要streamcopy(-c copy
)。只需简单地让FFmpeg来决定实际的输出参数(它会尝试重现相同质量的输入视频,比如保持相同的大小,宽高比等):
ffmpeg -i archive.iva output.mp4
此外,您完全滥用了这些选项。
-y
告诉FFmpeg自动对是/否问题说“是”(通常是覆盖同名的输出文件。全局选项,所以它应该在{之前使用} {1}}选项。-i
:使用此选项,您可以告诉FFmpeg应该在以下语句中处理流。 (例如:-map
选择第二个音频流)-map a:1
选项;在输出之前!另外我不确定这里有什么问题。-vsync
为一个或多个流选择编码器(或解码器)。因此,如果要为视频流指定“h264”,它应如下所示:-c
。 -c:v h264
参数告诉FFmpeg c 选择未更改的流到输出。如果您将其保留,则播放器无法将视频解码为MP4文件。基本FFmpeg命令的结构可以大致概括如下:
copy