编辑:我有看到过这个问题:avconv 在尝试对 mp4 视频进行下采样时创建零字节文件不幸的是,这不是同一个问题。
我试图将 avconv 与 Linux Ubuntu 服务器上的网站结合使用,以将上传的视频保存两次,一次保存为 ogg,另一次保存为 mp4(试图涵盖所有浏览器兼容性)。
我从未使用过 avconv(甚至之前甚至在 PHP 中使用过 shell),所以我在这方面还是个新手。但我设法从 Google 上拼凑出了很多信息。
只是为了测试一切是否正常,我还没有运行 PHP shell_exec - 我正在直接从服务器上的命令行运行 avconv。
问题在于:无论我创建哪种类型的视频,当我在浏览器中导航到视频路径时,都会收到视频文件已损坏且无法播放的错误。
当我下载视频文件进行检查时,我发现它们的大小为零字节,而原始文件的大小为 4.3MB。
我确信我只是缺少了某个参数——例如,我认为我没有指定要使用的确切编解码器——但我还只是新手,所以我不知道从哪里开始。
这是我目前正在使用的命令:
avconv -i /path/video.mp4 -vn /path/video.ogg
我也尝试将 mp4 保存为另一个 mp4,结果相同 - 文件损坏。
我尝试了多种其他选项,但我得到了很多 FFmpeg 而不是 avconv 的结果,其中一些似乎有效,而其他一些似乎无效。
以下是终端中的 avconv 输出:
avconv version 0.8.17-4:0.8.17-0ubuntu0.12.04.1, Copyright (c) 2000-2014 the Libav developers
built on Mar 16 2015 13:26:50 with gcc 4.6.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/path/video.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf54.4.100
Duration: 00:00:46.54, start: 0.000000, bitrate: 741 kb/s
Stream #0.0(und): Video: h264 (High), yuv420p, 640x264 [PAR 127:128 DAR 635:264], 608 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc
Stream #0.1(und): Audio: aac, 44100 Hz, stereo, s16, 128 kb/s
File '/path/video.ogg' already exists. Overwrite ? [y/N] y
Output #0, ogg, to '/path/video.ogg':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf53.21.1
Stream #0.0(und): Audio: flac, 44100 Hz, stereo, s16, 200 kb/s
Stream mapping:
Stream #0:1 -> #0:0 (aac -> flac)
Press ctrl-c to stop encoding
size= 3875kB time=46.60 bitrate= 681.2kbits/s
video:0kB audio:3858kB global headers:0kB muxing overhead 0.445476%