我正在尝试使用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强制执行的某种宽高比?
我需要递归遍历一个目录并删除扩展名为.pdf和.doc的所有文件,我正在设法循环遍历一个目录,但没有设法过滤带有上述文件扩展名的文件.
我的代码到目前为止
#/bin/sh
SEARCH_FOLDER="/tmp/*"
for f in $SEARCH_FOLDER
do
if [ -d "$f" ]
then
for ff in $f/*
do
echo "Processing $ff"
done
else
echo "Processing file $f"
fi
done
Run Code Online (Sandbox Code Playgroud)
我需要帮助才能完成代码,因为我无处可去.
如何使用ffmpeg 将.flac转换为.mp3,保留所有元数据(即将.flac文件中的Vorbis注释转换为.mp3的ID3v2元数据)?
我正在拼命寻找一种方便的方法来检查特定目录中包含文件夹的.mp4文件的完整性..mp4文件和文件夹的名称都包含空格,特殊字符和数字.
我已经找到了一个正确的ffmpeg命令来快速识别一个损坏的.mp4文件,取自这里:
ffmpeg -v error -i filename.mp4 -map 0:1 -f null - 2>error.log
如果创建的error.log包含一些条目,则该文件显然已损坏.相反的是一个空的error.log.
下一步是将此命令应用于文件夹及其子文件夹中的每个.mp4文件.一些指南,比如这里和这里,确实描述了如何递归地应用ffmpeg命令,但我的编码技巧有限,因此我找不到一种方法来组合这些命令来获得以下内容:
一种使用前面提到的ffmpeg命令测试文件夹内的所有.mp4文件的方法(应该创建.log文件),只有当视频文件确实包含错误(读取有一些内容)并且它应该继承破坏的名称时文件,以了解哪个文件已损坏.
使用Ubuntu Gnome 15.10.
我想用一个命令转换三个文件。我使用了以下命令:
-i "C:\fil1.mp4" -i "C:\file2.mp4" -i "C:\file3.mp4" -acodec libmp3lame -ab 32k -ar 22050 -ac 2 -b:v 128k -r 20 -s 176x144 -y file1.mp4 -acodec libmp3lame -ab 32k -ar 22050 -ac 2 -b:v 128k -r 20 -s 176x144 -y file2.mp4 -acodec libmp3lame -ab 32k -ar 22050 -ac 2 -b:v 128k -r 20 -s 176x144 -y file3.mp4
但它会转换名称为fil1.mp4、fil2.mp4、fil3.mp4的第一个文件,但我希望所有文件都应使用其输出文件名进行转换。
如何mp4将给定文件夹中的所有文件转换为mp3使用ffmpeg.我在google上看到的几乎所有链接都是关于将mp4视频转换为mp3.我可以通过VLC播放器做到这一点,但我有大量收集~1000 mp4音频文件,并希望通过某些脚本或命令通过命令行完成.是否可以通过gstreamer进行?
试图找出ffmpeg,目前致力于将24bit/96khz FLAC文件转换为16bit/48khz.
我一直在尝试使用ffmpeg转换整个文件夹.我搜索过网络,找到了各种答案,但没有一个能帮助我.目前我正在使用ffmpeg的多个实例一次转换多个文件.但即使使用复制/粘贴,一直输入所有内容也非常耗时且烦人.
为了简化我当前的代码,它看起来像这样.我指定输入文件和输出格式(+各种设置):
ffmpeg -i "EXAMPLE.avi" newEXAMPLE.mp4
Run Code Online (Sandbox Code Playgroud)
但我想要的是一个ffmpeg实例,可以将特定文件夹中的所有文件转换为新格式,并保存文件的原始名称.
example1.avi> example1.mp4
example2.avi> example2.mp4
example3.avi> example3.mp4
等等...
PS.我对这些事情有点新意,所以我非常感谢你的回答,所以我能理解和学习.谢谢!
我正在使用这一行将 mp4 文件批量转换为 webm 文件。对于所有 mp4 文件,我需要输出文件的名称相同但扩展名为 .webm。例如,如果我有 video1.mp4 和 video2.mp4,那么转换后我需要两个文件,即 video1.webm 和 video2.webm。我如何使用 bash 脚本实现这一目标?
for f in *.mp4; do ffmpeg -i "$f" -c:v libvpx -crf 10 -b:v 1M -c:a libvorbis "$f".webm; done
Run Code Online (Sandbox Code Playgroud)
上面的代码将输出文件更改为 video1.mp4.webm。谢谢!
任何人都可以告诉我一种从带有 FFMPEG 的 MKV 中删除除多种指定语言之外的所有子图块的方法吗?最好是可以从多个文件中按顺序完成此操作?
我用ffmpeg试过了。
ffmpeg input.webm output.webp
Run Code Online (Sandbox Code Playgroud)
input.webm包含透明背景,但 alpha 通道在 webp 中变成白色。我认为这意味着 alpha 通道没有结合在一起。
我用这个命令提取帧:
ffmpeg -i input.xxx -c:v libwebp output_%03d.webp
Run Code Online (Sandbox Code Playgroud)
它还为我提供了白色背景的 webp 文件。
如何使用 Alpha 通道正确转换它?或者我应该从其他格式(扩展名)转换它?
我不熟悉 ffmpeg,但遇到了这个脚本,它接受文件并使用 eac3 音频创建输出。
#!/bin/sh
echo "Dolby Digital Plus Muxer"
echo "Developed by @kdcloudy, not affiliated with Dolby Laboratories"
echo "Enter the file name to be converted: "
read filepath
if [! -d $filepath]
then
exit $err
fi
ffmpeg -i $filepath -vn ddp.eac3
ffmpeg -i $filepath -i ddp.eac3 -vcodec copy -c:a eac3 -map 0:s -map 0:v:0 -map 1:a:0 output.mp4
rm ddp.eac3
Run Code Online (Sandbox Code Playgroud)
我想知道在此代码中需要修改哪些内容,以确保从原始文件复制所有字幕,并将所有可用音轨转换为 eac3 并添加到 output.mp4 文件中。对于字幕复制,我尝试了 -map 但无法让它工作。谢谢您的帮助!
我有一堆文件:
dir/file1.ogg
dir/file2.ogg
...
Run Code Online (Sandbox Code Playgroud)
我怎样才能将它们转换为 .wav 文件
dir/wav/file1.wav
dir/wav/file2.wav
...
Run Code Online (Sandbox Code Playgroud)
通过使用控制台命令?现在我使用的是 OSX,但我也需要 Windows 的答案。