FFMpeg不插入声音转换媒体文件

FFMpeg doesnt insert sound to converted media files

我是 FFMpeg 的新人。我使用此代码将媒体文件转换为 WebM 和 MP4 格式:

(是php)

  // MP4
    $video_mp4 = $output_name . '.mp4';
    exec($ffmpeg . ' -i "' . $uploaded_file . '" -c:v libx264 -an "./converted/' . $video_mp4 . '" -y 1>convert.txt 2>&1', $output, $convert_status['mp4']);

    // Debug
     echo '<pre>' . print_r($output, 1) . ' </pre>';

    // WebM
    $video_webm = $output_name . '.webm';
    exec($ffmpeg . ' -i "' . $uploaded_file . '" -c:v libvpx -c:a libvorbis -an "./converted/' . $video_webm . '" -y 1>convert.txt 2>&1', $output, $convert_status['webm']);

    // Debug

代码转换媒体文件,但转换后的媒体文件(它们是 MP4 和 WebM 格式)没有任何声音。

如果我的代码是假的,你能写一个真正的转换命令吗?

我还想知道 -movflags +faststart 命令。它们是什么,你能解释一下吗?

我将 "aac" 命令添加到 WebM 翻译器命令,就像 "llogan" 一样 在下面 link:

的答案中说

但是我添加命令后,我的媒体文件没有被转换。

the converted media files ( they are in MP4 and WebM formats ) hasnt any sound.

您正在使用禁用音频输出的 -an 选项。删除 -an.

Also I wonder that -movflags +faststart commands.What are thet, can you explain?

-movflags +faststart 在编码完成后重新定位一些信息。它将信息从文件末尾移动到文件开头。信息只能在编码完成后才能制作,所以这就是为什么它不会在开始时立即制作的原因。此信息是播放所必需的,因此如果观众将通过渐进式下载观看,则此选项很有用。否则他们将不得不在开始播放之前完全下载视频。它仅对 MP4/M4A/M4V/MOV.

有用