我正在尝试使用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将静音音轨添加到MOV文件中.
我创建了一个比视频更长的静音音轨,并打算在ffmpeg中使用-shortest选项.
使用SoX v14.3.1,我运行它来生成一个wav文件:
sox -n -r 44100 -b 16 -c 2 -L silence.wav trim 0.0 60.000
# -n = Sox's null file
# -r = sample rate
# -b = bits per sample
# -c = num of channels
# -L = little endian
# filename
# trim - is an effect, args start and length.
Run Code Online (Sandbox Code Playgroud)
我的基本ffmpeg命令如下所示:
ffmpeg -shortest \
-i silence.wav -acodec pcm_s16le \
-i vid_no_sound.mov -vcodec copy vid_with_sound.mov
Run Code Online (Sandbox Code Playgroud)
结果是:
ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg …Run Code Online (Sandbox Code Playgroud) 我们需要将大型实时WMV视频源分成大小相同的小块.我们创建了一个可以正常工作的脚本,除了一件事:视频块不是以关键帧开始的,所以当播放大多数视频块时,它们不显示任何图像,直到原始视频的关键帧最终到达.
有没有办法让ffmpeg让输出视频以关键帧开始?
以下是我们的命令行现在的样子:
ffmpeg.exe -i "C:\test.wmv" -ss 00:00:00 -t 00:00:05 -acodec copy -vcodec copy -async 1 -y "0000.wmv"
ffmpeg.exe -i "C:\test.wmv" -ss 00:00:05 -t 00:00:05 -acodec copy -vcodec copy -async 1 -y "0001.wmv"
Run Code Online (Sandbox Code Playgroud)
等等...
网上似乎没有任何解释.人们谈论他们很多.我只是想知道它们是什么以及为什么它们具有重要意义.使用-video_track_timescale,我该如何确定它的数字?是随机的吗?应该是0吗?
我需要使用ffmpeg for windows将帧编号覆盖到视频文件的每个帧.
我成功地drawtext使用以下代码将过滤器的时间码标记覆盖:
ffmpeg -i video.mov -vcodec r210 -vf "drawtext=fontfile=Arial.ttf: timecode='01\:00\:00\:00': r=25: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099" -y output.mov
Run Code Online (Sandbox Code Playgroud)
但是,我需要一个帧号覆盖而不是时间码.任何帮助,将不胜感激.
我正在使用carrierwave-video在rails应用程序上使用我的ruby上传视频.但是在尝试编码视频时我遇到了这个问题:
Unknown encoder 'libfaac'
Errors: no output file created.
Run Code Online (Sandbox Code Playgroud)
我尝试过:
sudo apt-get install libfaac-dev
Run Code Online (Sandbox Code Playgroud)
但我得到了同样的错误.
更新:
编译ffmpeg后,我得到同样的错误:
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isomavc1
creation_time : 2011-10-13 18:54:50
encoder : HandBrake 0.9.5 2011010300
Duration: 00:06:43.28, start: 0.000000, bitrate: 380 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 960x600 [SAR 1:1 DAR 8:5], 279 kb/s, 9.25 fps, 25 tbr, 90k tbn, 180k tbc
Metadata:
creation_time : 2011-10-13 18:54:50
handler_name :
Stream #0:1(eng): Audio: aac …Run Code Online (Sandbox Code Playgroud) 我有两个相同长度的视频,我想用ffmpeg将它们叠加到一个视频文件中.
我怎样才能做到这一点?
我ffmpeg从命令行运行(Windows 7,64bit)从RTSP流(我的DVR的第二个频道)获取帧:
ffmpeg -i "rtsp://xxx.xxx.xxx.xxx:554/user=xxxx&password=xxxx&channel=2&stream=0.sdp" -rtsp_transport tcp -y video.jpg
Run Code Online (Sandbox Code Playgroud)
运行后,等待大约10秒然后我得到:
[rtsp @ 026fd840] UDP timeout, retrying with TCP
Run Code Online (Sandbox Code Playgroud)
经过另一个漫长的等待(2分钟左右),我得到:
[rtsp @ 028dd840] Could not find codec parameters for stream 0 (Video: h264): unspecified size
Run Code Online (Sandbox Code Playgroud)
我在某处读到了我必须强制使用TCP,因为从UDP更改为TCP将无法正常工作.
我不明白为什么-rtsp_transport tcp不工作.
我正在使用ffmpeg version N-62509-g97751e1 built on Apr 17 2014 22:01:31 with gcc 4.8.2 (GCC).
请帮我.谢谢.
我ffmpeg从Windows 10 的BtbN启用了 libx264 。这是命令:
ffmpeg -f gdigrab -c:v libx264 -framerate 30 -i title="FiveM" -f flv rtmp://MYSITE.COM/stream/MYSECRETKEY
Run Code Online (Sandbox Code Playgroud)
不幸的是我得到这个输出:
Unknown decoder 'libx264'
Run Code Online (Sandbox Code Playgroud)