小编llo*_*gan的帖子

ffmpeg为MJPEG编码生成更高质量的图像

我有一堆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不起作用.

ffmpeg h.264

10
推荐指数
1
解决办法
3万
查看次数

在ffmpeg video segment命令中指定时间戳

我有一个来自网络摄像头的连续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

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

ffmpeg失败:无法为'pipe:'找到合适的输出格式

我正在尝试录制我的桌面并将其保存为视频,但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)

ffmpeg

8
推荐指数
1
解决办法
5万
查看次数

适用于Chrome的ffmpeg选项

我试图找到使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)

只想要一个坚实的白色背景.

video mp4 google-chrome ffmpeg webm

8
推荐指数
1
解决办法
961
查看次数

RMS标准化ffmpeg

我是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.

audio ffmpeg normalize

8
推荐指数
1
解决办法
1424
查看次数

FFmpeg - 将MP4转换为Webm非常慢

我需要用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)

但它很长.

有更快的?

ffmpeg webm libvpx

8
推荐指数
1
解决办法
6069
查看次数

avconv:Overylaying多个带偏移的视频

我试图在分屏中叠加多个视频,具有不同的偏移(音频,视频都偏移),最初我尝试偏移和覆盖如下

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)

问题是所有视频从分屏开始,从第一个视频的偏移开始,好像单独的偏移没有奏效.

avconv

7
推荐指数
0
解决办法
245
查看次数

使用avisynth脚本作为ffmpeg的输入时出错

我搜索过互联网并没有找到解决方案.我希望这个问题不会重复.

我在同一个文件夹中有以下文件:

  • ffmpeg.exe(32位版本)
  • IN.mp4(视频编解码器 - AVC,音频编解码器 - PCM)
  • RUN_FILE.bat和RUN_AVS.bat批处理文件
  • SCRIPT.avs(avisynth脚本文件)
  • MSharpen.dll(锐化avisynth的过滤器)

内文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.

我很感激这方面的帮助 - 这是一个更大且非常重要的项目的一部分(自动扫描包含数百个视频文件的文件夹,锐化并将它们重新编码到具有相同文件名的另一个文件夹).

video ffmpeg avisynth

7
推荐指数
2
解决办法
5069
查看次数

ffmpeg转换.dav到任何视频文件

我正在尝试几天来转换.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

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

FFMPEG MOV到MP4错误{无法为输出文件#0写入标头(编解码器参数不正确?):参数无效}

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

ffmpeg

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

标签 统计

ffmpeg ×9

video ×2

webm ×2

audio ×1

avconv ×1

avisynth ×1

google-chrome ×1

h.264 ×1

libvpx ×1

mp4 ×1

normalize ×1