我想将video.mp4(1分钟持续时间)的视频和audio.mp3(10分钟持续时间)的音频混合到一个输出文件中,持续时间为1分钟.音频来自audio.mp34分钟 - 5分钟的位置.我怎么能这样做ffmpeg?
这是一个简单的请求,它有一个输入,输出和两个水印.从我收集的内容来看,我无法申请,-codec copy因为我正在使用过滤器.
ffmpeg -i input.mp4 -i wm-bl.png -i wm-br.png -filter_complex "overlay=x=0:y=H-h,overlay=x=W-w:y=H-h" output.mp4
Run Code Online (Sandbox Code Playgroud)
就水印而言,这就是技巧,但输出被压缩到原始文件大小的一半.
是否可以在不损失视频质量的情况下进行水印?
我正在尝试几天来转换.dav文件(由dvrs [image recorder]生成的文件).我尝试了几种变化,ffmpeg但不能成功.
命令和控制台输出:
$ ffmpeg -i input.dav -codec:v libx264 -crf 23 -preset medium -codec:a libfdk_aac -vbr 4 -movflags faststart -vf scale=-1:720,format=yuv420p output.mp4
ffmpeg version 2.8 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04)
configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libdcadec --enable-libfreetype --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvo-aacenc --enable-libvidstab
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 …Run Code Online (Sandbox Code Playgroud) 我已经使用该ffmpeg包创建了一个wmv文件gif(请参见下文).标题显示几秒钟,然后消失.是否有我可以应用的设置,以便在整个持续时间内将标题显示在视频中?
ffmpeg -i Input.gif -s 300x300 -metadata title="Testing" Output.wmv
Run Code Online (Sandbox Code Playgroud)
根据Maxito的建议,我已将代码修改为
ffmpeg -i Input.gif -vf drawtext="text='Text to write is this one, overlaid':fontsize=20:fontcolor=red:x=100:y=100" Output_Text.wmv
Run Code Online (Sandbox Code Playgroud)
收到以下错误消息:
[AVFilterGraph @ 0x100115cc0] No such filter: 'drawtext'
Error opening filters!
Run Code Online (Sandbox Code Playgroud)
这是我在Mac 10.6.8上使用的ffmpeg版本.是否需要重新编译?
ffmpeg version 2.5.3
built on Jan 19 2015 13:08:24 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
configuration: --prefix=/Volumes/Ramdisk/sw --enable-gpl --enable-pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libgsm --enable-libvidstab --enable-libx265 --arch=x86_64 --enable-runtime-cpudetect
libavutil 54. 15.100 …Run Code Online (Sandbox Code Playgroud) 我正在尝试缩放和转换视频:
ffmpeg -i input.mkv -s 1920×1080 output.mp4
Run Code Online (Sandbox Code Playgroud)
但每次出现错误(Windows):
Invalid frame size: 1920?ù1080.
Run Code Online (Sandbox Code Playgroud)
或者在Linux上:
Invalid frame size: 1920×1080.
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 FFmpeg 从本地 mp4 文件生成以下内容:
通读文档后,我正在努力使终端命令正确。为了删除音频,我尝试了这个命令但没有成功:
ffmpeg -i file.mp4 -map 0:0 -map 0:2 -acodec copy -vcodec copy
Run Code Online (Sandbox Code Playgroud)
谁能指导我如何做到这一点?
ffmpeg -ss 0 -t 8 -i input.mp4 -acodec copy -vcodec copy output.mp4
Run Code Online (Sandbox Code Playgroud)
可以设置编解码器。但是,要过滤:
ffmpeg -i input.mp4 -vf crop=100:100:0:0 output.mp4
Run Code Online (Sandbox Code Playgroud)
如果合并:
Filtergraph 'crop=100:100:0:0' was defined for video output stream 0:0 but codec copy was selected.
Filtering and streamcopy cannot be used together.
Run Code Online (Sandbox Code Playgroud)
如何像时间剪辑一样设置编解码器?
根据ffmpeg手册,设置-g是在"I"帧之间定义空间,并设置-bf为使用"B"帧.前者我得到了,但后者没有.
目标:我正在尝试使用GOP 3,12(M = 3,N = 12)的视频.这意味着:2"B"帧分隔每个"P"帧,"I"帧具有12帧距离.或者简单地说:"IBBPBBPBBPBBI"
我认为我只得到N = 12,使用以下命令:
ffmpeg -s cif -r 30 -b 64000 -bt 3200 -g 12 -y -i video.yuv -vcodec mpeg4 video.m4vMP4Box -hint -mtu 1460 -fps 30 -add video.m4v video.mp4ffmpeg -y -i video.mp4 video_ref.yuv../cmd/psnr 352 288 420 video.yuv video_ref.yuv > psnr_ref.txt../cmd/mp4trace -f -s 192.168.0.2 12346 video.mp4 > tracehead -n 20 trace结果:
[robert@10-2Fontes]$ head -n 20 trace
1 H 12002 9 0.000
2 P 11479 8 …Run Code Online (Sandbox Code Playgroud) 我在视频中添加了数千个矩形框.现在我正在使用这个命令:
ffmpeg.exe -i small.ts -vf drawbox=10:10:50:50:red,drawbox=100:100:200:200:green small_with_box.ts
Run Code Online (Sandbox Code Playgroud)
但是我不希望在整个框架上添加框,而是在给定的框架上添加框.任何人都知道我该怎么做?
我在 ubuntu 目录中有多个 mkv 文件。我已经安装了“avconv”工具并且它工作正常。我的目标是简单地连接所有这些文件并生成一个 mkv 文件。我参考了很多文章,发现这个命令应该可以达到目的:
avconv -i "concat:1-1.mkv|1-2.mkv|1-3.mkv" -c copy 1.mkv
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,出现错误:
concat:1-1.mkv|1-2.mkv|1-3.mkv: 没有那个文件或目录
我什至用 mp4 文件尝试过,但仍然是同样的错误。
谁能指出我在做什么错?或者还有其他方法吗?