我正在尝试将我的视频库转换为 HEVC 格式以获得空间。我对库中的所有视频文件运行了以下命令:
#!/bin/bash
for i in *.mp4;
do
#Output new files by prepending "X265" to the names
avconv -i "$i" -c:v libx265 -c:a copy X265_"$i"
done
Run Code Online (Sandbox Code Playgroud)
现在,大多数视频转换良好,质量与以前相同。但是,一些质量非常高的视频(例如,一部 5GB 的电影印刷品)会降低质量——视频都是像素化的。
我不知道在这种情况下该怎么做。我需要修改crf
命令行中的参数吗?或者是其他东西?
问题是,我正在进行批量转换。所以,我需要一种方法,avconv
可以为每个视频自动调整任何需要调整的参数。
我发现这crf
是我需要调整的旋钮。默认的 CRF 是 28。为了更好的质量,我可以使用小于 28 的值。例如:
avconv -i input.mp4 -c:v libx265 -x265-params crf=23 -c:a copy output.mp4
Run Code Online (Sandbox Code Playgroud)
但是,问题是对于某些视频,CRF 值 28 就足够了,而对于某些视频,则需要较低的 CRF。这是我必须通过转换大视频的小部分来手动检查的东西。但是在批量转换中,我将如何手动检查每个视频?他们有什么办法avconv
可以根据输入的视频智能调整CRF吗?
我发现--lossless
x265中有一个选项:http : //x265.readthedocs.org/en/default/lossless.html。
但是,我不知道如何正确使用它。我尝试以下列方式使用它,但它产生了相反的结果(视频更加像素化):
avconv -i input.mp4 -c:v libx265 -x265-params lossless -c:a copy …
Run Code Online (Sandbox Code Playgroud) 我试图自己解决这个问题,但无数的选择让我感到困惑。
我想理想地使用ffmpeg
或mencoder
(或其他东西,但我知道我正在工作的那两个)将任何传入的视频转换为固定的屏幕尺寸。
如果视频较宽或太短,则将视频居中裁剪。如果它不是正确的尺寸,则向上或向下调整大小以使其与固定的屏幕尺寸完全一致。
我需要的最后一件事是带有 MP3 音轨的 XVid AVI 中的 720x480。
我发现很多页面都显示了如何将大小调整为最大分辨率,但我需要视频恰好是该分辨率(裁剪掉多余的部分,没有黑条)。
任何人都可以告诉我要运行的命令行 - 或者至少让我了解一些/大部分方式吗?如果需要多个命令行(运行 X 以获得分辨率,执行此计算,然后使用该计算的输出运行 Y),我可以编写脚本。
我有 1 FPS 的 PNG 格式视频帧,我正在尝试使用 ffmpeg 将它们转换为视频。
如果我做这样的事情:
ffmpeg -i data/input-%4d.png data/output.mp4
我以 25FPS 获得视频,这基本上是输入的非常快进(以 1FPS 捕获)。
如果我尝试:
ffmpeg -i data/input-%4d.png -r 1 data/output.mp4
我得到了 VLC 不想玩的东西:)
现在,如果我拍摄第一个视频(FF 视频)并应用过滤器来减慢它的速度(例如-filter:v 'setpts=24.0*PTS'
),我可以让它像 1 FPS 视频一样播放,但当然价格是文件大小。我猜它正在生成一堆重复的帧。
所以,问题是我如何创建一个恰好具有 1 FPS 并且实际以该速度播放的视频?顺便说一句,输出格式对我来说并不重要。
我正在尝试将从 DVD 复制的 VOB 文件转换为 Ubuntu 13.10 中的 avi。我试过dvdrip
,由于帧计数错误或其他原因而失败。我也尝试过 acidrip,但它总是选择我不想使用的音轨。我更喜欢使用命令行解决方案来创建具有以下功能的 avi:
我尝试了一些ffmpeg
与avconv
命令和管理,以创建一个avi,但视频和音频是完全地不同步。那么我应该使用哪些选项将 VOB 文件转换为 avi 文件?
我将不胜感激对建议的选项的一些解释!
附加信息:
该ffmpeg
命令为输入文件提供以下输出
Input #0, mpeg, from 'Videos/Test/VIDEO_TS/VTS_01_1.VOB':
Duration: 00:04:53.32, start: 0.045500, bitrate: 29284 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 8:9 DAR 4:3], 7500 kb/s, 27.68 fps, 59.94 tbr, 90k tbn, 59.94 tbc
Stream #0.1[0x82]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
Stream #0.2[0x80]: Audio: ac3, …
Run Code Online (Sandbox Code Playgroud)如何以交互方式将多个 MP4 视频文件连接(连接)为一个文件?
有很多程序可以从命令行对两个文件执行此操作。例如:
但是我们经常需要一个解决方案来以交互方式执行此操作。
DVD 文件布局有一个名为“ VIDEO_TS ”的目录,其中包含各种文件。这些文件可以包括多个视频和音频通道、字幕和菜单结构 (UI)。
有没有一种格式可以包含所有这些,但在一个文件中?这种格式可以在不损失视频质量的情况下做到这一点吗?保留菜单怎么样?甚至可能保留字幕和评论曲目?我该怎么做(命令)?
[注意] 这些不是硬性要求。我只是在寻找可以处理的不仅仅是音频/视频的东西。
我的 ~/.bashrc 包含以下功能
webcamrecord () {
vlc v4l2:// :v4l-vdev="/dev/video0" :v4l-adev="/dev/audio2" :v4l-norm=3 :v4l-frequency=-1 :v4l-caching=300 :v4l-chroma="" :v4l-fps=-1.000000 :v4l-samplerate=44100 :v4l-channel=0 :v4l-tuner=-1 :v4l-audio=-1 :v4l-stereo :v4l-width=640 :v4l-height=480 :v4l-brightness=-1 :v4l-colour=-1 :v4l-hue=-1 :v4l-contrast=-1 :no-v4l-mjpeg :v4l-decimation=1 :v4l-quality=100 --sout="#transcode{vfilter=adjust{gamma=1.5},vcodec=theo,vb=2000,scale=0.67,acodec=vorb,ab=128,channels=2}:standard{access=file,mux=ogg,dst="output_file.ogg"}"
}
Run Code Online (Sandbox Code Playgroud)
该命令可以很好地直接从我的网络摄像头录制,但存在一两个缺陷。首先,制作的视频移动速度太快,是正常速度的两倍到三倍。
此外,没有音频。这不是一个问题,但我仍然想解决这个问题。
有人可以帮我调试这个命令,以便解决这些问题吗?
Handbrake new VP9 codec
变灰无法使用。
我从ppa repo
他们的homepage
.
libav and the vpx-tools
已安装。
我错过了什么?我可以检查什么?
如何在 MKV 文件中将 hdmv_pgs_subtitle(基于图像)转换为基于文本的字幕?
我已经尝试过,ffmpeg -i in.mkv -c:v copy -c:a copy -c:s mov_text out.mkv
但结果出现以下错误:
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Stream #0:2 -> #0:2 (hdmv_pgs_subtitle (pgssub) -> mov_text (native))
Error while opening encoder for output stream #0:2 - maybe incorrect > parameters such as bit_rate, rate, width or height
Run Code Online (Sandbox Code Playgroud) video-encoding ×10
ffmpeg ×7
video ×6
avconv ×3
avi ×1
bash ×1
camera ×1
codec ×1
dvd ×1
handbrake ×1
mencoder ×1
ogg ×1
shell-script ×1
software-rec ×1
vlc ×1