标签: ffmpeg

使用ffmpeg根据开始和结束时间剪切视频

我尝试使用以下命令使用视频的开始和结束时间剪切视频

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:0300:00:08.但它并没有在这些时间之间切断视频,而是在前11秒内切断视频.任何人都可以帮我解决这个问题吗?

编辑1:

我尝试使用mark4o建议的以下命令进行剪切

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)

现在工作正常.

linux video ffmpeg video-editing

457
推荐指数
7
解决办法
37万
查看次数

使用FFmpeg旋转视频

我一直试图找出如何使用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 rotation video-processing

395
推荐指数
8
解决办法
28万
查看次数

如何使用FFmpeg连接两个MP4文件?

我正在尝试使用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)

mp4 ffmpeg h.264

345
推荐指数
17
解决办法
34万
查看次数

ffmpeg,libav和avconv之间有什么区别和相似之处?

当我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)

audio ubuntu ffmpeg libavcodec libav

243
推荐指数
1
解决办法
14万
查看次数

实时HTTP流式传输到HTML5视频客户端的最佳方法

我真的很难理解使用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)

streaming html5 ffmpeg node.js

204
推荐指数
5
解决办法
19万
查看次数

在Android上使用FFmpeg

我在Android上编译了FFmpeg(libffmpeg.so).现在我必须构建像RockPlayer这样的应用程序或使用现有的Android多媒体框架来调用FFmpeg.

  1. 你有关于在Android/StageFright上集成FFmpeg的步骤/程序/代码/示例吗?

  2. 您能否指导我如何使用此库进行多媒体播放?

  3. 我有一个要求,我已经有音频和视频传输流,我需要将其提供给FFmpeg并进行解码/渲染.我怎么能在Android上这样做,因为IOMX API是基于OMX的,不能在这里插入FFmpeg?

  4. 另外,我找不到需要用于播放的FFmpeg API的文档.

android ffmpeg stagefright android-ffmpeg

202
推荐指数
6
解决办法
15万
查看次数

如何安装和运行phpize

我的意思是安装ffmpeg为我的PHP设置的扩展.所以在我安装它之前,我需要phpize它.我安装php5-devsudo 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启动并运行?

php ffmpeg phpinfo

185
推荐指数
9
解决办法
36万
查看次数

ffmpeg从视频中提取音频

我尝试了以下命令从视频中提取音频:
__CODE__

但我输出为

ffmpeg -i Sample.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 Sample.mp3
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

ffmpeg

185
推荐指数
10
解决办法
20万
查看次数

FFMPEG(libx264)"高度不能被2整除"

我正在尝试使用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 h.264 libx264

162
推荐指数
5
解决办法
7万
查看次数

ffmpeg输出的含义(tbc,tbn,tbr)

我正在使用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究竟是什么?我看过网上的猜测,但没有确定的?

video ffmpeg

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