- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,如果现在解决了我的 ffmpeg 旅程的所有问题,我只需要在转换视频后立即在 Flash 播放器中播放,而无需等到视频 100% 加载我使用:
if ($success_msg) {
$tmp_parts = explode('.', $file['name']);
$ext = array_pop($tmp_parts);
$ext = strtolower($ext);
if($ext == "avi" && $convert_avi == true) {
$convert_source = _VIDEOS_DIR_PATH.$new_name;
$conv_name = substr(md5($file['name'].rand(1,888)), 2, 10).".mp4";
$converted_file = _VIDEOS_DIR_PATH.$conv_name;
$ffmpeg_command = 'ffmpeg -i '.$convert_source.' -acodec libfaac -vcodec libx264 -s 1280x720 -ar 44100 -async 44100 -r 29.970 -ac 2 -qscale 5 '.$converted_file;
echo exec($ffmpeg_command);
$sql = "UPDATE pm_temp SET url = '".$conv_name."' WHERE url = '".$new_name."' LIMIT 1";
$result = @mysql_query($sql);
unlink($convert_source);
}
echo $success_msg;
}
root@1tb:~# ffmpeg -i sample.avi -movflags faststart -acodec libfaac -vcodec libx264 -s 1280x720 -ar 44100 -async 44100 -r 29.970 -ac 2 -qscale 5 consample.mp4
ffmpeg version 0.7.15, Copyright (c) 2000-2013 the FFmpeg developers
built on Feb 22 2013 07:18:58 with gcc 4.4.5
configuration: --enable-libdc1394 --prefix=/usr --extra-cflags='-Wall -g ' --cc='ccache cc' --enable-shared --enable-libmp3lame --enable-gpl --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-avfilter --enable-libdirac --disable-decoder=libdirac --enable-libfreetype --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg --enable-libvpx --enable-librtmp --extra-libs=-lgcrypt --disable-altivec --disable-armv5te --disable-armv6 --disable-vis
libavutil 50. 43. 0 / 50. 43. 0
libavcodec 52.123. 0 / 52.123. 0
libavformat 52.111. 0 / 52.111. 0
libavdevice 52. 5. 0 / 52. 5. 0
libavfilter 1. 80. 0 / 1. 80. 0
libswscale 0. 14. 1 / 0. 14. 1
libpostproc 51. 2. 0 / 51. 2. 0
[mp3 @ 0x15389100] Header missing
[mpeg4 @ 0x15386dc0] Invalid and inefficient vfw-avi packed B frames detected
Input #0, avi, from 'sample.avi':
Metadata:
encoder : VirtualDubMod 1.5.10.2 (build 2540/release)
Duration: 00:01:01.81, start: 0.000000, bitrate: 1194 kb/s
Stream #0.0: Video: mpeg4, yuv420p, 640x352 [PAR 1:1 DAR 20:11], 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 128 kb/s
[MOV/3GP/MP4/3G2 muxer @ 0x15386c80] [Eval @ 0x7ffffec71230] Undefined constant or missing '(' in 'faststart'
[MOV/3GP/MP4/3G2 muxer @ 0x15386c80] Unable to parse option value "faststart"
Invalid value 'movflags' for option 'faststart'
最佳答案
您必须使用 -movflags faststart
以避免播放器必须缓冲整个视频。
通常,mp4 的内部索引将被写入文件的末尾(因为在处理文件时它不知道/不完整)。 faststart
一旦完成,将执行另一个 muxer pass 将该索引移动到前面,以便播放器可以在不先读取整个文件的情况下读取它。
确保您的 ffmpeg 版本足够新以支持此功能。
例子:
# -strict 2 just for allowing the aac encoder.
$ ffmpeg -i in.mkv -strict -2 -movflags faststart out.mp4
ffmpeg version 57577-g83b8d74 Copyright (c) 2000-2013 the FFmpeg developers
built on Oct 28 2013 15:31:30 with Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
Input #0, matroska,webm, from 'in.mkv':
Duration: 00:00:23.02, start: 0.000000, bitrate: 4128 kb/s
Stream #0:0: Video: h264 (High), yuv420p, 1280x716 [SAR 1:1 DAR 320:179], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
Stream #0:1: Audio: mp3, 44100 Hz, stereo, s16p, 192 kb/s (default)
...
Output #0, mp4, to 'out.mp4':
Metadata:
encoder : Lavf55.19.104
Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1280x716 [SAR 1:1 DAR 320:179], q=-1--1, 12800 tbn, 25 tbc (default)
Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 44100 Hz, stereo, fltp, 128 kb/s (default)
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> libx264)
Stream #0:1 -> #0:1 (mp3 -> aac)
Press [q] to stop, [?] for help
...
[mp4 @ 0x7f9c44016e00] Starting second pass: moving the moov atom to the beginning of the file
...
video:5426kB audio:361kB subtitle:0 global headers:0kB muxing overhead 0.291754%
...
qt-faststart
可能会更好。而不是 ffmpeg 本身。有一个
tools/qt-faststart.c
在 ffmpeg 中,从 0.5(或其他)开始,您可以编译
cc -o qt-faststart tools/qt-faststart.c
并使用
./qt-faststart in.mp4 out.mp4
.
关于php - 将 avi 转换为 mp4 后的 ffmpeg 需要等到视频在 Flash 播放器中加载 100% 否则视频正在缓冲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19636299/
要将视频 MP4 转换为视频 MP4 anamorphose,我使用: ffmpeg -i input.mp4 -crf 15 -g 1 -intra output.mp4 我在 output.mp4
我有一个 .avi 视频。我需要将其中的一部分剪切为另一个 .avi 文件。当我这样做时,我会丢失剪切文件的质量: ffmpeg -i input.avi -ss 00:34:00 -t 00:10:
我有一个带有 SDK for Visual C++ 的视频采集卡。在 SDK 的回调中,我可以以 30 fps 的速度使用彩色帧 (640 x 480)。目前,我在一个单独的线程中将整个图像序列作为单
我在带有 Codec DV Video (dvds) 的文件夹(在 Windows 7 上)中有一堆 avi 文件。这些是直接从我的索尼 DCR-PC120E Pal 相机和索尼附带的软件复制而来的。
我必须为我正在做的项目录制视频。其中两个是 USB 摄像头,另一个是 IP 顶置摄像头。所有三个都连接到笔记本电脑。录制视频后,我需要能够在编辑器中打开它们(不是特别用于编辑,而是用于建模其中需要时间
有没有办法使用 mmread 或其他函数逐帧读取 .avi 视频文件,类似于使用 videoReader 和 readFrame 函数? 我使用了 mmread 但读取每一帧需要很长时间,因为它读取了
我想解复用然后复用 .avi 文件而不更改任何内容。 我的程序是这样的(为简洁而编辑): AVFormatContext *input_format_context = NULL; a
有一个 IP 网络摄像头,我前段时间写了一个 .NET 类。它基本上是一个 Timer 实现,它每五秒从相机 ping 一个快照 CGI 脚本。相机本身非常简陋。它没有任何类型的 API 供我使用,我
我自己正在学习matlab,我用matlab做了一个动画情节;现在我想把它保存为一个视频文件。你能告诉我如何在matlab中把我的动画转换成一个视频文件吗?下面是我的代码 x=[1:2]; for i
我正在尝试制作一个程序,从网络摄像头捕捉视频并从麦克风捕捉声音,但我卡在了我试图用静止图像制作电影的部分 我听说你需要使用 directshow,但它对我不起作用 有人知道捕获视频和声音并将其编码为文
我想在 PHP 页面上播放视频 (AVI/MPG)。我怎样才能做到这一点?我还想为每个视频生成缩略图。谁能推荐一些工具? 最佳答案 对于缩略图,您需要类似 ffmpeg安装在您的服务器上。 要播放视频
我正在使用 ffmpeg 剪切视频文件: ffmpeg - -ss 00:00:00 -t 00:00:30 不包括 *.avi 格式的不同文件格式是可以的。对于 avi 电影,ffmpeg 显示视
我正在尝试拆分持续时间为 1 小时到 8 分钟的视频 (.avi) 文件。 我正在使用以下命令 ffmpeg -i videos_22_05_18/cnbc.avi -ss 00:00:00 -to
我创建了一个 AVI file通过使用 Cairo 渲染帧。 AVI生成代码为part of an OCaml library .但是,ffmpeg 和 vlc 都只产生第一帧。如果我剪掉 avi 标
我有一台 Fujifilm FinePix Real 3D W3,它创建了 Fujifilm 所谓的 3D-AVI 文件。有一些程序可以将这些 3D-AVI 文件拆分为单独的左右电影,但它们涉及在 W
我正在尝试使用以下命令将 avi 转换为 mp4: ffmpeg -i avi_videos.avi -c copy new.mp4 我收到了一个错误(见下文),我不太明白。我需要添加哪些其他参数才能
背景故事: 我有一个 VB.net 程序(它使用一个更老的 COM 对象访问 DVR)以每 15 秒的长度创建顺序编号的 AVI 文件。每 15 秒创建一个新的 AVI,其中包含最近 15 秒的视频。
你好。 我有一个很大的视频文件。 ffmpeg , tcprobe和其他工具说,它是 AVI 容器中的 h264 流。 现在我想从视频中剪下小块。 问题:视频接缝的索引损坏/损坏。我通过 mplaye
我有一个 .avi 文件,它位于我服务器的一个文件夹中。此文件夹的名称带有重音符号。 问题是,当我将该文件放在标签中时,它会显示一个 txt 文件(我认为是 avi 文件编码),这显然是一个错误。它只
我有一个带有 3 个字幕流的 AVI 文件(mpeg4 视频)。我需要将第二个流提取到 SRT/txt 以便对翻译进行一些更正。我目前在一台 Ubuntu 机器上。 我尝试使用 avconv,但出现错
我是一名优秀的程序员,十分优秀!