我正在使用卡拉 OK 创作程序 (karafun),它允许我选择分辨率和 FPS,但它将视频输出为原始格式,将音频输出为 IMA ADPCM,并将其放置在 AVI 容器中。
PS C:\bin> .\ffprobe.exe -i '.\JEZ-092 - Megan - Thot.avi'
[avi @ 0000026820d002c0] non-interleaved AVI
Input #0, avi, from '.\JEZ-092 - Megan - Thot.avi':
Duration: 00:03:10.30, start: 0.000000, bitrate: 885289 kb/s
Stream #0:0: Video: rawvideo, bgr24, 1280x720, 884852 kb/s, 40 fps, 40 tbr, 40 tbn
Stream #0:1: Audio: adpcm_ima_wav ([17][0][0][0] / 0x0011), 44100 Hz, 2 channels, s16p, 352 kb/s
我想将此内容上传到 youtube,同时保持当前分辨率和 FPS。完整的 ffmpeg 命令行是什么,它将视频编码为 h.264,音频编码为 mp3,然后将其放在 mp4 容器中?在您的回复中,对于输入路径,您只需键入 INPUT_FILE。您不必使用我的文件名。
谢谢
答案1
YouTube 并不真正关心您提供什么,因此建议提供最高质量且上传不会太大或烦人的内容。
你要求什么
MP4 中的 H.264 + MP3:
ffmpeg -i input.avi -c:v libx264 -crf 18 -preset slow -c:a libmp3lame -q:a 2 output.mp4
您的本地播放器/设备/浏览器不会喜欢该文件,但 YouTube 会喜欢,并且 YouTube 版本可以在任何设备上使用。如果您希望它在任何地方都能使用,请添加
-vf format=yuv420p
。如果编码速度太慢,请使用更快的
-preset
。
我会做什么
Matroska 中的 HEVC + Opus:
ffmpeg -i input.avi -c:v libx265 -crf 22 -preset slow -c:a libopus -b:a 192k output.mkv
- libx265(或 libx264rgb)而不是 libx264 来保留输入的 RGB 色彩空间并让 YouTube 处理 RGB 到 YUV 色彩空间的转换(他们可能会使用不同的东西进行色彩空间转换,所以看起来可能更好,但我从来没有费心去比较)。
- 如果 libx265 太慢,请使用更快的版本
-preset
,或者改用 libx264rgb 或 libx264。 - Opus 比 MP3 更高效。或者
-c:a flac
如果你想要无损压缩,可以使用 Opus,但文件会更大。 - 看FFmpeg 维基百科:HEVC和氢音频:Opus。
答案2
步骤 1:从 AVI 获取视频并转码为 video.h264
ffmpeg -i input.avi -c:v libx264 -crf 1 -b:v 884852k -maxrate 884852K -bufsize 8M -movflags -faststart -preset veryfast -an only_video.mp4
步骤 2:从 AVI 获取音频并转换为 mp3 文件
ffmpeg -i input.avi -vn only_audio.mp3
步骤 3:MP4 文件中的视频和音频
ffmpeg -i only_video.mp4 -c:a mp3 -i only_audio.flac -c copy -map 0:v -map 1:a:0 -strict -2 -sn -dn -map_metadata -1 -map_chapters -1 -movflags faststart final_file.mp4
注意:YouTube 将按照他们的标准对您的视频进行编码,因此,如果您直接上传 final_file.mp4 或 '.\JEZ-092 - Megan - Thot.avi',效果将是相同的。