我尝试使用以下命令使用视频的开始和结束时间剪切视频
ffmpeg -ss 00:00:03 -t 00:00:08 -i movie.mp4 -acodec copy -vcodec copy -async 1 cut.mp4
Run Code Online (Sandbox Code Playgroud)
通过使用上面的命令,我想将视频剪切00:00:03为00:00:08.但它并没有在这些时间之间切断视频,而是在前11秒内切断视频.任何人都可以帮我解决这个问题吗?
编辑1:
ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 cut.mp4
Run Code Online (Sandbox Code Playgroud)
但它显示以下错误.
编码器'aac'是实验性的,但未启用实验编解码器
所以我添加-strict -2到命令,即,
ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 -strict -2 cut.mp4
Run Code Online (Sandbox Code Playgroud)
现在工作正常.
我一直试图找出如何使用FFmpeg旋转视频.我正在处理以纵向模式拍摄的iPhone视频.我知道如何使用MediaInfo(优秀的库,顺便说一句)确定当前的旋转度,但我现在卡在FFmpeg上.
根据我的阅读,您需要使用的是vfilter选项.根据我的看法,它应该是这样的:
ffmpeg -vfilters "rotate=90" -i input.mp4 output.mp4
Run Code Online (Sandbox Code Playgroud)
但是,我不能让这个工作.首先,-vfilters不再存在,它现在只是-vf.其次,我收到此错误:
No such filter: 'rotate'
Error opening filters!
Run Code Online (Sandbox Code Playgroud)
据我所知,我有一个FFmpeg的全选版本.运行ffmpeg -filters显示:
Filters:
anull Pass the source unchanged to the output.
aspect Set the frame aspect ratio.
crop Crop the input video to x:y:width:height.
fifo Buffer input images and send them when they are requested.
format Convert the input video to one of the specified pixel formats.
hflip Horizontally flip the input video.
noformat …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用ffmpeg连接两个mp4文件.我需要这是一个自动过程因此我选择ffmpeg.我正在将这两个文件转换为.ts文件,然后将它们连接起来,然后尝试对该连接的.ts文件进行编码.文件是h264和aac编码,我希望保持质量相同或尽可能接近原始.
ffmpeg -i part1.mp4 -vcodec copy -vbsf h264_mp4toannexb -acodec copy part1.ts
ffmpeg -i part2.mp4 -vcodec copy -vbsf h264_mp4toannexb -acodec copy part2.ts
cat part1.ts part2.ts > parts.ts
ffmpeg -y -i parts.ts -acodec copy -ar 44100 -ab 96k -coder ac -vbsf h264_mp4toannexb parts.mp4
Run Code Online (Sandbox Code Playgroud)
不幸的是我在编码过程中收到来自ffmpeg的以下错误消息:
[h264 @ 0x1012600]sps_id out of range
[h264 @ 0x1012600]non-existing SPS 0 referenced in buffering period
[h264 @ 0x1012600]sps_id out of range
[h264 @ 0x1012600]non-existing SPS 0 referenced in buffering period
[NULL @ 0x101d600]error, non monotone timestamps 13779431 >= …Run Code Online (Sandbox Code Playgroud) 当我ffmpeg在Ubuntu上运行时,它显示:
$ ffmpeg
ffmpeg version v0.8, Copyright (c) 2000-2011 the Libav developers
built on Feb 28 2012 13:27:36 with gcc 4.6.1
This program is not developed anymore and is only provided for compatibility. Use avconv instead (see Changelog for the list of incompatible changes).
Run Code Online (Sandbox Code Playgroud)
或者它显示(取决于Ubuntu版本):
$ ffmpeg
ffmpeg version 0.8.5-6:0.8.5-0ubuntu0.12.10.1, Copyright (c) 2000-2012 the Libav developers
built on Jan 24 2013 14:49:20 with gcc 4.7.2
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility …Run Code Online (Sandbox Code Playgroud) 我真的很难理解使用node.js将ffmpeg的实时输出流式传输到HTML5客户端的最佳方法,因为有很多变量在起作用,我在这个领域没有很多经验,花了很多时间尝试不同的组合.
我的用例是:
1)IP视频摄像机RTSP H.264流由FFMPEG拾取并使用节点中的以下FFMPEG设置重新转换为mp4容器,输出到STDOUT.这仅在初始客户端连接上运行,因此部分内容请求不会再次尝试生成FFMPEG.
liveFFMPEG = child_process.spawn("ffmpeg", [
"-i", "rtsp://admin:12345@192.168.1.234:554" , "-vcodec", "copy", "-f",
"mp4", "-reset_timestamps", "1", "-movflags", "frag_keyframe+empty_moov",
"-" // output to stdout
], {detached: false});
Run Code Online (Sandbox Code Playgroud)
2)我使用节点http服务器捕获STDOUT并在客户端请求时将其流回客户端.当客户端第一次连接时,我生成上面的FFMPEG命令行,然后将STDOUT流传递给HTTP响应.
liveFFMPEG.stdout.pipe(resp);
Run Code Online (Sandbox Code Playgroud)
我还使用了流事件将FFMPEG数据写入HTTP响应,但没有任何区别
xliveFFMPEG.stdout.on("data",function(data) {
resp.write(data);
}
Run Code Online (Sandbox Code Playgroud)
我使用以下HTTP标头(在流式传输预先录制的文件时也使用并工作)
var total = 999999999 // fake a large file
var partialstart = 0
var partialend = total - 1
if (range !== undefined) {
var parts = range.replace(/bytes=/, "").split("-");
var partialstart = parts[0];
var partialend = parts[1];
}
var start = parseInt(partialstart, 10);
var end …Run Code Online (Sandbox Code Playgroud) 我在Android上编译了FFmpeg(libffmpeg.so).现在我必须构建像RockPlayer这样的应用程序或使用现有的Android多媒体框架来调用FFmpeg.
你有关于在Android/StageFright上集成FFmpeg的步骤/程序/代码/示例吗?
您能否指导我如何使用此库进行多媒体播放?
我有一个要求,我已经有音频和视频传输流,我需要将其提供给FFmpeg并进行解码/渲染.我怎么能在Android上这样做,因为IOMX API是基于OMX的,不能在这里插入FFmpeg?
另外,我找不到需要用于播放的FFmpeg API的文档.
我的意思是安装ffmpeg为我的PHP设置的扩展.所以在我安装它之前,我需要phpize它.我安装php5-dev了sudo apt-get install php5-dev.但是现在当我运行时,phpize我收到以下错误:
phpize
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module
Run Code Online (Sandbox Code Playgroud)
我的php.ini的位置是 /usr/local/zend/etc/php.ini
从另一个在线资源我试过这个
sudo apt-get install autoconf automake libtool m4
Run Code Online (Sandbox Code Playgroud)
但所有这些都已经安装好了.
找到config.m4没有返回任何内容.
这里有什么指示我可以如何获得phpize并因此ffmpeg启动并运行?
我尝试了以下命令从视频中提取音频:
__CODE__
但我输出为
ffmpeg -i Sample.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 Sample.mp3
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
我正在尝试使用libx264编解码器使用FFMPEG从一组帧中编码.mp4视频.
这是我正在运行的命令:
/usr/local/bin/ffmpeg -r 24 -i frame_%05d.jpg -vcodec libx264 -y -an video.mp4
Run Code Online (Sandbox Code Playgroud)
我有时会收到以下错误:
[libx264 @ 0xa3b85a0] height not divisible by 2 (520x369)
Run Code Online (Sandbox Code Playgroud)
在稍微搜索之后,似乎问题与缩放算法有关,可以通过添加-vf参数来修复.
但是,在我的情况下,我不想做任何缩放.理想情况下,我希望保持尺寸与框架完全相同.有什么建议?是否存在h264强制执行的某种宽高比?
我正在使用ffmpeg告诉我视频信息.特别:
ffmpeg -i video.ext
Run Code Online (Sandbox Code Playgroud)
我得到输出:
Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 704x576 [PAR 12:11 DAR 4:3], 9578 kb/s, 25 tbr, 90k tbn, 50 tbc
Run Code Online (Sandbox Code Playgroud)
有谁知道tbr,tbn和tbc究竟是什么?我看过网上的猜测,但没有确定的?