标签: video-conversion

使用 ffmpeg/avconv 调整视频大小以适应静态大小的播放器

我有一个 html 5 视频播放器,宽 700 像素,高 400 像素。我试图用avconv使用ffmpeg确保它符合我的播放器来调整(同时保留宽高比)和决策。

输入可以是任何大小的文件,所以我需要调整较大的文件的大小,但用黑条将较小的文件居中。到目前为止,我已经尝试过:-s-aspect,我已经看到pad-vfswitch一起使用,但不明白它是如何工作的,足以获得我需要的东西。

图片

这是我需要什么的粗略想法。我不确定这是否可能。这几乎就像 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)

ffmpeg video-conversion libav

82
推荐指数
3
解决办法
8万
查看次数

使用 ffmpeg 以最小的质量损失将视频从 1080p 转换为 720p

我与我的高质量电影叠加: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)

video ffmpeg video-conversion high-definition

72
推荐指数
2
解决办法
17万
查看次数

使用 ffmpeg 复制编解码器将 *.ts 文件合并为单个 mp4

我有一堆由单个 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)

codec mp4 ffmpeg command-line video-conversion

65
推荐指数
6
解决办法
13万
查看次数

将 AVI (Xvid) 转换为 MP4 (H.264) 保持相同的质量

我想使用 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)

h.264 ffmpeg video-conversion video-encoding

56
推荐指数
1
解决办法
17万
查看次数

在 FFmpeg 中为 DASH 修复关键帧的正确方法是什么?

在调节用于 DASH 播放的流时,随机访问点必须在所有流中的源流时间完全相同。执行此操作的常用方法是强制固定帧速率和固定 GOP 长度(即每 N 帧一个关键帧)。

在 FFmpeg 中,固定帧速率很容易(-r NUMBER)。

但是对于固定的关键帧位置(GOP 长度),有三种方法……哪一种是“正确的”?FFmpeg 文档对此非常含糊。

方法 1:弄乱 libx264 的参数

-c:v libx264 -x264opts keyint=GOPSIZE:min-keyint=GOPSIZE:scenecut=-1
Run Code Online (Sandbox Code Playgroud)

是否应该关闭场景切换似乎存在一些争论,因为当场景切换发生时关键帧“计数器”是否重新启动尚不清楚。

方法二:设置固定GOP大小:

-g GOP_LEN_IN_FRAMES
Run Code Online (Sandbox Code Playgroud)

不幸的是,这只是在 FFMPEG 文档中顺便记录,因此这个论点的效果非常不清楚。

方法 3:每 N 秒插入一个关键帧(可能?):

-force_key_frames expr:gte(t,n_forced*GOP_LEN_IN_SECONDS)
Run Code Online (Sandbox Code Playgroud)

明确记录的。但是,“时间计数器”是否在每个关键帧后都重新启动,目前还不清楚。例如,在预期的 5 秒 GOP 中,如果scenecutlibx264 在 3 秒内注入了一个关键帧,那么下一个关键帧是 5 秒后还是 2 秒后?

事实上,FFmpeg 文档区分了这个和-g选项,但它并没有真正说明上面的这两个选项有何不同(显然,-g将需要固定的帧速率)。

哪个是对的?

看起来-force_key_frames会更好,因为它不需要固定的帧速率。然而,这要求

  • 它符合 H.264 中的 GOP 规范(如果有
  • 它保证会有一个固定节奏的关键帧,而不管 libx264scenecut关键帧。

如果-g不强制固定帧速率 ( …

video ffmpeg streaming video-conversion

54
推荐指数
4
解决办法
10万
查看次数

手刹设置将 MKV 转换为 MP4,同时保留原始质量

我有大量 MKV 文件需要转换为 MP4,我选择的软件是 Handbrake。

我被困在哪些设置最适合转换。我想保持完整的质量。我是否只是使用原始设置进行转换而不更改任何内容,或者是否需要更改任何特定内容?

mp4 handbrake video-conversion matroska

48
推荐指数
2
解决办法
19万
查看次数

如何从 MP4 和 MKV 电影中提取字幕

我正在尝试从 MP4 和 MKV 电影中提取字幕。我正在使用 mp4box(在 OS X 上),但不知道它是如何工作的。

任何提示?

linux subtitles video-conversion matroska macos

46
推荐指数
2
解决办法
9万
查看次数

仅使用 ffmpeg 转换特定的视频和音轨

我有一个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)

ffmpeg video-conversion

45
推荐指数
1
解决办法
7万
查看次数

下载 m3u8 视频

我正在尝试在 Windows 10 上下载 m3u8 视频,我已经尝试了所有方法,但无法下载它们。

任何人都可以帮助我吗?以下是视频的链接:

http://s6.vidshare.tv/hls/pdommq4tlsm4f4kmledsh5d5fcn27i35msjxqw62l,w63wt5bgaqhzzy5tnfq,7p3ut5bgaqjxkd423pq,fflut5bgaqkj42irb5q,

http://s6.vidshare.tv/hls/pdommq4tlsm4f4kmledsh5d5fcn27i35msjxqw62lfflut5bgaqhb5kirb5q/index-v1-a1.m3u8

顺便说一下,这些链接是针对同一个视频的,但没有一个与我合作过。

file-download video-streaming video-conversion

45
推荐指数
1
解决办法
10万
查看次数

为什么与所有其他预设相比,FFmpeg 中的预设“非常快”会生成压缩程度最高的文件?

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)

video compression ffmpeg video-conversion x264

44
推荐指数
2
解决办法
2万
查看次数