我有一个 html 5 视频播放器,宽 700 像素,高 400 像素。我试图用avconv
使用ffmpeg
确保它符合我的播放器来调整(同时保留宽高比)和决策。
输入可以是任何大小的文件,所以我需要调整较大的文件的大小,但用黑条将较小的文件居中。到目前为止,我已经尝试过:-s
和-aspect
,我已经看到pad
与-vf
switch一起使用,但不明白它是如何工作的,足以获得我需要的东西。
这是我需要什么的粗略想法。我不确定这是否可能。这几乎就像 CSS 的 max-width/max-height。我意识到这可能只是一个混乱的词,但如果有人碰巧明白我在说什么,我会很感激帮助,谢谢。
avconv
命令:
avconv -y -i control.avi -vcodec libx264 -b 2000k -bufsize 20M -acodec aac -strict experimental -ar 44100 -ab 256k bigbuck_out.mp4
Run Code Online (Sandbox Code Playgroud) 我与我的高质量电影叠加:1080p 和 60fps。问题是玩的时候卡顿。
我尝试使用 ffmpeg 将其转换为 720p:
ffmpeg -i MyMovie.mkv -r 60 -s hd720 MyMovie_720p.mkv
Run Code Online (Sandbox Code Playgroud)
但是由于比特率从 32.3 Mbps 降低到 2.8 Mbps,因此质量损失很大。如何为视频流指定正确的比特率,并使所有其他流复制原始?
输入文件mediainfo:
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.2
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 2h 58mn
Bit rate : 32.3 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 59.940 …
Run Code Online (Sandbox Code Playgroud) 我有一堆由单个 index.m3u8 文件描述的 ts 段:
index.m3u8
segment1_0_av.ts
segment2_0_av.ts
segment3_0_av.ts
segment4_0_av.ts
segment5_0_av.ts
Run Code Online (Sandbox Code Playgroud)
我知道它们都以相同的方式编码。ffprobe 给了我以下内容:
Input #0, mpegts, from 'segment1_0_av.ts':
Duration: 00:00:10.00, start: 0.100511, bitrate: 1251 kb/s
Program 1
Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 960x540 [SAR 1:1 DAR 16:9], 12.50 fps, 25 tbr, 90k tbn, 25 tbc
Stream #0:1[0x101]: Audio: aac ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 105 kb/s
Stream #0:2[0x102]: Unknown: none ([21][0][0][0] / 0x0015)
Run Code Online (Sandbox Code Playgroud)
我想将它们组合成一个 mp4 容器。但是当我尝试以下命令时:
ffmpeg -f concat -i filelist.txt -c copy output.mp4 …
Run Code Online (Sandbox Code Playgroud) 我想使用 h.264 编解码器将 AVI 文件压缩为 MP4。我无法获得相同的质量。我怎样才能压缩它?
原始视频屏幕:
FFmpeg 控制台输出 ( ffmpeg -i input.avi
):
FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers
built on Dec 28 2012 10:03:40 with gcc 4.4.6 20120305 (Red Hat 4.4.6-4)
configuration: --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-x11grab --enable-libopencore-amrnb --enable-libopenc ore-amrwb --enable-libdc1394 --enable-libfaac --enable-libmp3lame --enable-libop enjpeg --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib --enable-filter=drawtext
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 …
Run Code Online (Sandbox Code Playgroud) 在调节用于 DASH 播放的流时,随机访问点必须在所有流中的源流时间完全相同。执行此操作的常用方法是强制固定帧速率和固定 GOP 长度(即每 N 帧一个关键帧)。
在 FFmpeg 中,固定帧速率很容易(-r NUMBER)。
但是对于固定的关键帧位置(GOP 长度),有三种方法……哪一种是“正确的”?FFmpeg 文档对此非常含糊。
-c:v libx264 -x264opts keyint=GOPSIZE:min-keyint=GOPSIZE:scenecut=-1
Run Code Online (Sandbox Code Playgroud)
是否应该关闭场景切换似乎存在一些争论,因为当场景切换发生时关键帧“计数器”是否重新启动尚不清楚。
-g GOP_LEN_IN_FRAMES
Run Code Online (Sandbox Code Playgroud)
不幸的是,这只是在 FFMPEG 文档中顺便记录,因此这个论点的效果非常不清楚。
-force_key_frames expr:gte(t,n_forced*GOP_LEN_IN_SECONDS)
Run Code Online (Sandbox Code Playgroud)
这是明确记录的。但是,“时间计数器”是否在每个关键帧后都重新启动,目前还不清楚。例如,在预期的 5 秒 GOP 中,如果scenecut
libx264 在 3 秒内注入了一个关键帧,那么下一个关键帧是 5 秒后还是 2 秒后?
事实上,FFmpeg 文档区分了这个和-g
选项,但它并没有真正说明上面的这两个选项有何不同(显然,-g
将需要固定的帧速率)。
看起来-force_key_frames
会更好,因为它不需要固定的帧速率。然而,这要求
scenecut
关键帧。如果-g
不强制固定帧速率 ( …
我有大量 MKV 文件需要转换为 MP4,我选择的软件是 Handbrake。
我被困在哪些设置最适合转换。我想保持完整的质量。我是否只是使用原始设置进行转换而不更改任何内容,或者是否需要更改任何特定内容?
我正在尝试从 MP4 和 MKV 电影中提取字幕。我正在使用 mp4box(在 OS X 上),但不知道它是如何工作的。
任何提示?
我有一个vidui.mkv
包含 6 首曲目的 MKV 文件 ( )。
Track 1 - video - xvid - 1920x1080
Track 2 - video - xvid - 720x576
Track 3 - audio - AAC - 1240kbps - English
Track 4 - audio - AAC - 648kbps - Spanish
Track 5 - audio - AAC - 648kbps - Commentary 1
Track 6 - audio - AAC - 648kbps - Commentary 2
Run Code Online (Sandbox Code Playgroud)
我想将上述文件转换为带有一个 h264 视频和一个 AC3 音频的 mp4 格式。我还想转换轨道 1(视频)和轨道 5(音频)。
如果我使用
ffmpeg.exe -i vidui.mkv …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Windows 10 上下载 m3u8 视频,我已经尝试了所有方法,但无法下载它们。
任何人都可以帮助我吗?以下是视频的链接:
顺便说一下,这些链接是针对同一个视频的,但没有一个与我合作过。
该FFmpeg的维基说,最好的压缩率是预先设定的“veryslow”。
但是当我用我的视频尝试它时,预设veryfast
在我的情况下提供了最好的压缩。
以下是我的样本的输出:
ultrafast
ffmpeg -y -threads 1 -i "D:\Video\PresentTest\Safari_Dolby_Digital_Plus.m2ts.mp4" -c:v libx264 -preset ultrafast -c:a aac -max_muxing_queue_size 1024 "D:\Video\PresentTest\Safari_Dolby_Digital_Plus-ultrafast.mp4"
frame= 2822
fps= 65
q=-1.0
Lsize=
239118kB
time=00:01:34.18
bitrate=20797.6kbits/s
speed=2.16x
Run Code Online (Sandbox Code Playgroud)
superfast
ffmpeg -y -threads 1 -i "D:\Video\PresentTest\Safari_Dolby_Digital_Plus.m2ts.mp4" -c:v libx264 -preset superfast -c:a aac -max_muxing_queue_size 1024 "D:\Video\PresentTest\Safari_Dolby_Digital_Plus-superfast.mp4"
frame= 2822
fps= 63
q=-1.0
Lsize= 150252kB
time=00:01:34.18
bitrate=13068.3kbits/s
speed=2.09x
Run Code Online (Sandbox Code Playgroud)
veryfast
ffmpeg -y -threads 1 -i "D:\Video\PresentTest\Safari_Dolby_Digital_Plus.m2ts.mp4" -c:v libx264 -preset veryfast -c:a aac -max_muxing_queue_size 1024 "D:\Video\PresentTest\Safari_Dolby_Digital_Plus-veryfast.mp4"
frame= 2822 …
Run Code Online (Sandbox Code Playgroud)