FFmpeg 多通道编码

FFmpeg 多通道编码

抱歉,我对此真的很陌生,如果没有帮助,完成某些任务会遇到困难。

所以我有一个终端命令:

ffmpeg \
-y \
-i '/media/levan/BEEA60D8EA608E89/Downloads/Videos/Tony Braxton - Un-Break My Heart.VOB' \
-s 1920x1080 \
-aspect 16:9 \
-r 25 \
-b 15550k \
-bt 19792k \
-vcodec libtheora \
-acodec libvorbis \
-ac 2 \
-ar 48000 \
-ab 320k \
ddd.ogg

我想要输出视频中有 3 遍视频,但是我该如何实现呢?

我发现我必须-pass n在某个地方写命令,但我不知道在哪里写。我测试了这一点,并-pass 3在最后写了,但终端只显示一个>符号。

答案1

使用您的参数和“每行一个选项”,两遍编码如下所示:

ffmpeg \
-y \
-i '/media/levan/BEEA60D8EA608E89/Downloads/Videos/Tony Braxton - Un-Break My Heart.VOB' \
-s 1920x1080 \
-aspect 16:9 \
-r 25 \
-b 15550k \
-bt 19792k \
-vcodec libtheora \
-an \
-f ogg \
-pass 1 \
/dev/null \
&& \
ffmpeg \
-y \
-i '/media/levan/BEEA60D8EA608E89/Downloads/Videos/Tony Braxton - Un-Break My Heart.VOB' \
-s 1920x1080 \
-aspect 16:9 \
-r 25 \
-b 15550k \
-bt 19792k \
-vcodec libtheora \
-acodec libvorbis \
-ac 2 \
-ar 48000 \
-ab 320k \
-pass 2 \
ddd.ogg

您可以从第一遍中排除音频并输出/dev/null(如示例中所示)。我不明白为什么您需要三遍。

答案2

我建议你不要使用 shell 脚本源 ~/bin/audio_video_conversions.sh而是在命令行上依次运行这 2 个命令,以找出问题所在。

我认为你需要弄清楚为什么你会得到这个

Unable to find a suitable output format for '/dev/null'

第一次通过时。使用以下命令查看目录

ls 

命令。请确保您有一个

ffmpeg2pass-0.log

第 1 遍之后创建的文件。

您要求 ffmpeg 进行 2 遍转换,以查找第 1 遍中的比特率差异,将比特率信息记录到文件中,并使用日志文件制作更高效的第 2 遍。但您还告诉 ffmpeg 不要更改比特率。无法同时完成这两项操作。

-bt 19792k \

你想要哪个?你想让 ffmpeg 使用 2-pass 更改比特率?还是你想让 ffmpeg 仅使用 1-pass 保持 -bt 19792k?

[libx264 @ 0x195fd20] constant rate-factor is incompatible with 2pass.

答案3

所以,我的理解是,第一遍是为了获取第二遍的信息...我听说,你做的遍数越多,文件就越小。尝试从 VOB 文件获取 mpeg-4 文件,我有以下函数,有人能帮助我吗?

我的职责:

avconv -i $fileName -threads auto -c:v libx264 -preset veryslow -pass 1 /dev/null;
logInfo "First Pass done! doing second......"
avconv -i $fileName -pass 2 -threads auto -c:v libx264 -preset veryslow ${targetFile};

结果:

pg@pipoTower: /var/autofs/removable/usbData/movies/.../VIDEO_TS$ source ~/bin/audio_video_conversions.sh ;my_convert_to_mpeg4_2pass VTS_01_1.VOB
INFO --> Converting with 2 passes source file:VTS_01_1.VOB- date is Fri Aug 30 15:15:28 CEST 2013
INFO --> Target file name:VTS_01_1_20130830_151528.mp4-
avconv version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
built on Mar 30 2013 22:20:06 with gcc 4.7.2
[mpeg @ 0x11d6b80] max_analyze_duration reached
Input #0, mpeg, from 'VTS_01_1.VOB':
Duration: 00:17:10.62, start: 0.280000, bitrate: 8334 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x576 [PAR 16:15 DAR 4:3], 8500 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0.1[0x80]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
Unable to find a suitable output format for '/dev/null'
INFO --> First Pass done! doing second......
avconv version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
built on Mar 30 2013 22:20:06 with gcc 4.7.2
[mpeg @ 0x1952b80] max_analyze_duration reached
Input #0, mpeg, from 'VTS_01_1.VOB':
Duration: 00:17:10.62, start: 0.280000, bitrate: 8334 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x576 [PAR 16:15 DAR 4:3], 8500 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0.1[0x80]: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s
[buffer @ 0x19620c0] w:720 h:576 pixfmt:yuv420p
[libx264 @ 0x195fd20] using SAR=16/15
[libx264 @ 0x195fd20] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX XOP FMA4 SSEMisalign LZCNT
[libx264 @ 0x195fd20] constant rate-factor is incompatible with 2pass.
Output #0, mp4, to 'VTS_01_1_20130830_151528.mp4':
Stream #0.0: Video: libx264, yuv420p, 720x576 [PAR 16:15 DAR 4:3], q=-1--1, pass 2, 90k tbn, 25 tbc
Stream #0.1: Audio: [0][0][0][0] / 0x0000, 48000 Hz, stereo, s16, 200 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (mpeg2video -> libx264)
Stream #0:1 -> #0:1 (ac3 -> libvo_aacenc)
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

相关内容