我有一堆mov/H.264文件,我想编码成mov/MJPEG.但是我的输出质量非常低.这是我试过的:
ffmpeg -i a.mov -an -crf 11 -preset slower -pix_fmt yuv420p -vcodec mjpeg -f mov -y b.mov
Run Code Online (Sandbox Code Playgroud)
对于H.264编码,-crf和-preset标志产生更高的质量.但这似乎对MJPEG不起作用.
我有一个来自网络摄像头的连续RTSP流.我想转储流但是在每个长度为1分钟的视频文件中.
我使用以下命令
ffmpeg -i "rtsp://user:pass@example.com" -f mp4 -r 12 -s 640x480 -ar 44100 \
-ac 1 -segment_time 60 -segment_format mp4 "out%03d.mp4"
Run Code Online (Sandbox Code Playgroud)
正在创建的文件的名称是形式的out001.mp4,out002.mp4等等.
我想在文件段的名称中包含时间戳(小时和分钟),例如.09-30.mp4,09-31.mp4等等.
如果是强制性的,以该段提供一个序列号,是有可能得到类似的东西09-30-001.mp4,09-31-002.MP4?
我正在尝试录制我的桌面并将其保存为视频,但ffmpeg失败.
这是终端输出:
$ ffmpeg -f alsa -i pulse -r 30 -s 1366x768 -f x11grab -i :0.0 -vcodec libx264 - preset ultrafast -crf 0 -y screencast.mp4
...
Unable to find a suitable output format for 'pipe:'
Run Code Online (Sandbox Code Playgroud) 我试图找到使mp4在Chrome中运行的神奇选项.我认为我的视频有效,但Chrome更新后似乎没有了.
Chrome,版本41.0.2272.101(Windows)
我尝试了其他一些机器,发现一些视频适用于旧版本,而我的Mac似乎仍然适用于最新的Chrome.
我正在使用ffmpeg选项从png系列转换,
ffmpeg -framerate 10 -i dance%02d.png -r 10 -pix_fmt yuv420p dance.mp4
Run Code Online (Sandbox Code Playgroud)
有些视频有效,有些则无效,有些视频有效,或者中途停止.
我试过各种其他选择,比如
ffmpeg -start_number 16 -framerate 10 -i dance%02d.png -r 10 -an -s hd720 \
-vcodec libx264 -pix_fmt yuv420p -preset slow -profile:v baseline \
-movflags faststart -y dance.mp4
Run Code Online (Sandbox Code Playgroud)
但这似乎让事情变得更糟.
这是其中一个视频, http://www.botlibre.com/media/a786625.mp4
另一个, http://www.botlibre.com/media/a812450.mp4
Firefox似乎在任何版本,灰色背景上都没有问题.IE工作正常,白色背景.Safari工作,灰色背景.
另一件事,他们的视频曾经在较旧的Chrome版本上有白色背景,但现在是灰色的,除了Mac还是白色.
还有一件事.Webm格式有效,但是有人知道删除透明度的选项吗?我正在使用,
ffmpeg -i dance%02d.png -r 10 -c:v libvpx -crf 10 -b:v 512k -c:a libvorbis dance.webm
Run Code Online (Sandbox Code Playgroud)
只想要一个坚实的白色背景.
我是ffmpeg的新手,想创建一个可以将RMS规范化音频文件到指定的RMS(平均值)dB级别的脚本.有人可以说明如何做到这一点?
我已经使用了dynaudnorm,但无法获得所需的输出,我相信这是因为它使用了与分析整个文件相对的框架.
为了RMS规范化,我的想法是使用条件语句来创建一个过滤器,它可以自动读取音频文件的RMS(平均)电平,然后自动将RMS(平均)电平设置为指定的dB电平.
理论范例:
ffmpeg -i (inputfilename) -af "normalize_rms=-20dB" (outputfilename)
Run Code Online (Sandbox Code Playgroud)
条件声明和示例的说明:
通过1:运行astats或volumedetect来计算RMS级别.
通过2:如果RMS电平= X dB,则添加Y dB电平以匹配用户指定的dB电平.
示例:如果RMS电平= -30dB,并且用户指定的RMS电平= -20dB,则再加10dB.
我需要用ffmpeg将MP4转换为webm.所以,我使用:
ffmpeg -i input.mp4 -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis output.webm
Run Code Online (Sandbox Code Playgroud)
但它很长.
有更快的?
我试图在分屏中叠加多个视频,具有不同的偏移(音频,视频都偏移),最初我尝试偏移和覆盖如下
avconv -i 1.webm -itsoffset 2 -s 640x480 -vf "movie=1.webm, scale=320:480 [vid2]; [vid2] overlay=0:0 [basis1]; [basis1][1] overlay=320:0" splitScreenOut.mp4
Run Code Online (Sandbox Code Playgroud)
&叠加的视频被偏移:
movie=overlay.avi:seek_point=1.4
Run Code Online (Sandbox Code Playgroud)
但是这种方法并没有在我的方面起作用,-itsoffset抵消整个视频输出seek_point并且我的avconv构建无法识别.
然后我尝试单独抵消每个视频.
avconv -itsoffset 4 -i 1.webm -c copy tmp1.webm
Run Code Online (Sandbox Code Playgroud)
简单地覆盖
avconv -i tmp1.webm -s 640x480 -vf "[in] scale=640/3:480, pad=3.01*iw:ih [video0]; movie=tmp2.webm, scale=640/3:480 [video1];[video0][video1] overlay=(640)/3:0 [VidO1]; movie=tmp3.webm, scale=640/3:480 [video2];[VidO1][video2] overlay=(640/3)*2:0 [out]" -b:v 768k Output.webm<
Run Code Online (Sandbox Code Playgroud)
问题是所有视频从分屏开始,从第一个视频的偏移开始,好像单独的偏移没有奏效.
我搜索过互联网并没有找到解决方案.我希望这个问题不会重复.
我在同一个文件夹中有以下文件:
内文RUN_FILE.bat:
ffmpeg -i "IN.mp4" -c:v libx264 -crf 24 -c:a libmp3lame -aq 2 OUT.mp4
Run Code Online (Sandbox Code Playgroud)
内文RUN_AVS.bat:
ffmpeg -i "SCRIPT.avs" -c:v libx264 -crf 24 -c:a libmp3lame -aq 2 OUT.mp4
Run Code Online (Sandbox Code Playgroud)
SCRIPT.avs(3行)内的文字:
LoadPlugin("D:\MSharpen.dll")
DirectShowSource("D:\IN.MP4")
MSharpen(15,150)
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用外部程序(如媒体播放器classic)加载avisynth脚本,它可以正常工作(并锐化视频帧).
转到命令行并运行RUN_FILE.bat按预期工作,但运行时RUN_AVS.bat我收到以下错误(请参见屏幕截图):

我发现这个令人困惑,因为配置了ffmpeg --enable-avisynth.
我很感激这方面的帮助 - 这是一个更大且非常重要的项目的一部分(自动扫描包含数百个视频文件的文件夹,锐化并将它们重新编码到具有相同文件名的另一个文件夹).
我正在尝试几天来转换.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转换和watermar视频
ffmpeg -i "MVI_9692.MOV" -i 360.png -acodec copy -threads 12 -filter_complex "scale=-2:360,overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" "MVI_9692.MOV_360.mp4"
Run Code Online (Sandbox Code Playgroud)
这个命令正在使用不同格式的视频,但我收到了一个MOV视频的错误信息
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Run Code Online (Sandbox Code Playgroud)
这些是我在错误消息之前收到的警告
[swscaler @ 0x47adf20] deprecated pixel format used, make sure you did set range correctly
[mp4 @ 0x4729540] Codec for stream 1 does not use global headers but container format requires global headers
[mp4 @ 0x4729540] Could not find tag for codec pcm_s16le in stream #1, codec not currently supported in container
Run Code Online (Sandbox Code Playgroud)