使用ffmpeg将.iva转换为.mp4

时间:2016-06-09 06:28:59

标签: video ffmpeg video-processing video-conversion video-codecs

我要转换的视频已上传到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%

1 个答案:

答案 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