FFmpeg 从脚本运行时无法找到合适的输出格式

FFmpeg 从脚本运行时无法找到合适的输出格式

我正在尝试编写 bash 脚本,我可以使用它来启动我的网络播放器的视频编码,并且在启动/完成时将其记录到文件中。

它看起来像这样:

#!/bin/bash
>/var/www/stat/encode.txt
echo "on $(date +%s)" > /var/www/stat/encode.txt
ffmpeg -i 'suzumiya.mkv' -preset slow -crf 18 -c:v libx264 -c:a aac -strict -2 -movflags faststart -tune animation -profile:v baseline -vf "ass=suzumiya.ass" 'suzu.mp4'
echo "off $(date +%s)" > /var/www/stat/encode.txt

当我运行它时,它告诉我:

'NULL @ 0x20ad4c0] Unable to find a suitable output format for 'suzu.mp4
: Invalid argument

当我将 ffmpeg 代码复制粘贴到控制台时,它运行良好,没有错误。问题可能出在哪里?

完整输出:

ffmpeg version N-63938-g684a915 Copyright (c) 2000-2014 the FFmpeg developers
  built on Jun 13 2014 18:07:52 with gcc 4.7 (Debian 4.7.2-5)
  configuration: --enable-gpl --enable-gray --enable-runtime-cpudetect --enable-bzlib --enable-gnutls --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libcdio --enable-libdc1394 --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libv4l2 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-openal --enable-zlib --enable-nonfree --enable-version3 --enable-x11grab
  libavutil      52. 89.100 / 52. 89.100
  libavcodec     55. 66.100 / 55. 66.100
  libavformat    55. 43.100 / 55. 43.100
  libavdevice    55. 13.101 / 55. 13.101
  libavfilter     4.  8.100 /  4.  8.100
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 19.100 /  0. 19.100
  libpostproc    52.  3.100 / 52.  3.100
Input #0, matroska,webm, from 'suzumiya.mkv':
  Metadata:
    title           : The Melancholy of Haruhi Suzumiya: Special Ending
    encoder         : libebml v0.7.7 + libmatroska v0.8.0
    creation_time   : 2007-05-09 12:50:35
  Duration: 00:01:11.97, start: 0.000000, bitrate: 3580 kb/s
    Stream #0:0(jpn): Video: h264 (High), yuv420p, 704x480, SAR 229:189 DAR 5038:2835, 23.98 fps, 23.98 tbr, 1k tbn, 59.94 tbc (default)
    Metadata:
      title           : The Melancholy of Haruhi Suzumiya: Special Ending
    Stream #0:1(jpn): Audio: vorbis, 48000 Hz, stereo, fltp (default)
    Metadata:
      title           : 2ch Vorbis
    Stream #0:2(eng): Subtitle: ssa (default)
    Metadata:
      title           : Styled ASS
    Stream #0:3(eng): Subtitle: ssa
    Metadata:
      title           : Styled ASS (Simple)
    Stream #0:4(eng): Subtitle: subrip
    Metadata:
      title           : Plain SRT
    Stream #0:5: Attachment: ttf
    Metadata:
      filename        : GosmickSansBold.ttf
      mimetype        : application/x-truetype-font
    Stream #0:6: Attachment: ttf
    Metadata:
      filename        : epmgobld_ending.ttf
      mimetype        : application/x-truetype-font
'NULL @ 0x20ad4c0] Unable to find a suitable output format for 'suzu.mp4
: Invalid argument

答案1

您应该测试脚本文件的“编码”是否错误。我在 Windows 机器上创建脚本文件并在 Linux 机器上运行它时也遇到了同样的问题。
尤其是换行符的编码方式。应该是(如果)在 Linux 上,而不是像我的 Windows 机器那样写成 (CR LF)。
在 Windows 上的 Notepad++ 中,您可以轻松更改此设置,或者只需在 Linux 机器上创建一个新文件,然后将代码复制粘贴到那里。

相关内容