我已经使用了命令
ffmpeg -i input.webm -q:v 10 -c:a copy out.mp4
Run Code Online (Sandbox Code Playgroud)
我也尝试使用avconv代替 ffmpeg。
转换成功,但质量很差。也需要很多时间。它也不能与 Windows Media Player 一起播放。(这样做的原因是文件被转换为 mpegv1。)如何添加一个选项将其转换为 mpegv2?
以下是命令行输出:
avconv version 0.8.16-4:0.8.16-0ubuntu0.12.04.1, Copyright (c) 2000-2014 the Libav developers
built on Sep 16 2014 18:33:49 with gcc 4.6.3
[matroska,webm @ 0xe737a0] Estimating duration from bitrate, this may be inaccurate
Input #0, matroska,webm, from 'test.webm':
Duration: 00:00:08.57, start: 0.000000, bitrate: N/A
Stream #0.0: Video: vp8, yuv420p, 1536x768, PAR 1:1 DAR 2:1, 1k fps, 1k tbr, 1k tbn, 1k tbc (default) …Run Code Online (Sandbox Code Playgroud) 我正在使用一些基于 gstreamer 的应用程序和一些其他流媒体内容,但我有些困惑:libav 和 ffmpeg 之间有什么区别?
我没有找到解释它们是什么以及它们有何不同。还有更多的工具叫做 ffmpeg,而其他的也有同样的东西。甚至那些项目标志也是一样的。更糟糕的是,即使使用它们的外部应用程序也会错误地命名它们,混合它们(gstreamer-0.10 指的是 ffmpeg,而 gstreamer-1.0 指的是 libav)。
有没有简单的方法可以找出应用程序真正需要和使用哪个库?是否有任何技术(非政治软件许可废话)差异为什么项目分裂,我应该知道何时应该与他们合作?
更新:评论中有人提供了与图书馆历史和有用信息相关的问题的链接。但是我怀疑我的问题是完全重复的:
我最近下载了一个keygenchiptunes包(通过http://keygenmusic.net/),其中大多数都是.xm,.mod等文件格式。我想将它们全部转换为mp3,希望如此使用像 avconv 这样的工具(这样我就可以批量处理它们)。
但是,当我发出 时avprobe <filename>,我收到以下错误:
avprobe version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2007-2014 the Libav developers
built on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
2000AD/2000AD - Creatures To The Rescue +3 trn.mod: Invalid data found when processing input
# avprobe output
Run Code Online (Sandbox Code Playgroud)
如何将这些文件转换为 mp3 格式?
另外,这里是我需要转换的所有文件类型的列表:
24 ahx
2 amd
4 bp
7 d00
4 fc13
15 fc14
6 hsc
217 it
99 mid
5 mo3
989 mod
6 mp3
1 mtm
3 nsf
19 …Run Code Online (Sandbox Code Playgroud) 我正在将一堆视频从 FLV 转换为 MP4(为了与 iPhone 兼容),并使用 AAC 编解码器,它不断抛出“无效的音频比特率”或类似的错误。我尝试了-c:a copy选项并且它有效,但我想知道这是否告诉 avconv 使用原始 MP3 编解码器或仅使用原始音频比特率/频率?
avconv -i input.flv -s 640x480 -b 1248k -vcodec libx264 -acodec aac \
-strict experimental -c:a copy output.mp4
Run Code Online (Sandbox Code Playgroud) 我有一个 javascript,可以将来自网络摄像头的视频记录为 webm,将来自麦克风的音频记录为 wav。我正在编码这些 webm 和 wave 文件以使用 ffmpeg/avconv 生成一个 mp4 文件。但我注意到音频长度和视频长度存在微小差异,这使得输出不同步。
我尝试了 async/asyncts 选项,但我注意到输出没有差异,仍然不同步
ffmpeg -async 1 -y -i audio.wav -i video.webm -vcodec libx264 output.mp4
Run Code Online (Sandbox Code Playgroud)
我尝试使用带有 avconv 的 areasample 过滤器给了我错误
No such filter: 'areasample'
Error opening filters!
Run Code Online (Sandbox Code Playgroud)
为了
avconv -y -i audio.wav -i video.webm -vcodec libx264 -filter "areasample=asyncts:compensate" output.mp4
Run Code Online (Sandbox Code Playgroud)
如何让视频同步?
更新:
我的音频长度小于视频长度。我正在使用命令
ffmpeg -itsoffset -00:00:01 -y -i audio.wav -i video.webm -vcodec libx264 output.mp4
使它们同步。但我不确定总是会有 1 秒的差异。所以我正在寻找一种可以动态管理它的解决方案(为丢失的音频长度添加偏移量)。
我有一个.avi包含以下流的文件:
Stream #0.0: Video: mpeg4 (Advanced Simple Profile), yuv420p, 608x256 [PAR 1:1 DAR 19:8], 23.98 tbn, 23.98 tbc
Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16p, 128 kb/s
Run Code Online (Sandbox Code Playgroud)
我想在应该支持 mpeg4 视频流的 Iphone 上播放这部电影,如上一个问题所述。目前,我不关心音频流(Iphone 似乎不支持 mp3)
因此,我正在寻找一种方法来将我的文件的“容器”格式从Iphone 所需的格式转换.avi为.mp4所需的格式。它是否可行,如果是,我该怎么做?