我正在使用 ffmpeg 将各种类型的视频文件转换为 mp4。
我使用的命令适用于我遇到的大多数视频文件,但是当遇到 m4v 时,它永远不会停止处理文件。我让它运行的最长时间是 4 小时,处理 10 分钟的视频片段。更重要的是,如果我让它运行足够长的时间,输出文件将比输入文件大。
以下是完整的命令。此命令还将视频大小调整为标准清晰度。
/usr/local/bin/ffmpeg -y -i /path/to/input.m4v -y -acodec libfaac -ar 44100 -ab 96k -pass 2 -passlogfile x264-2pass-11164-log -threads 2 -vcodec libx264 -b 512k -flags +loop+mv4 -cmp 256 -partitions +parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 -me_method hex -subq 7 -trellis 1 -refs 5 -bf 3 -flags2 +bpyramid+wpred+mixed_refs+dct8x8 -coder 1 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -qmin 10 -qmax 51 -qdiff 4 -s 720x406 -vf movie=/apps/video_conversion/watermark.png [wm]; [in][wm] overlay=main_w-overlay_w-10:10 [out] -analyzeduration 2000M /path/to/output.mp4
我在这里做错了什么?考虑到这些文件类型非常相似,我认为在 mp4 和 m4v 之间进行计算会很容易。
我知道只需更改扩展名即可轻松在 mp4 和 m4v 之间转换。我之所以在 ffmpeg 上通过此命令运行它,是因为它还需要调整为指定格式。
答案1
尝试这个:
ffmpeg -y -i INPUT -r 30000/1001 -b 2M -bt 4M -vcodec libx264 -pass 2 -vpre hq -acodec libfaac -ac 2 -ar 48000 -ab 192k output.mp4