如何将 ffmpeg 的输出通过管道传输到 ffplay?
目前我在 bash 中使用了一种解决方法:
mkfifo spam
(ffplay spam 2> /dev/null &) ; capture /dev/stdout | ffmpeg -i - spam
Run Code Online (Sandbox Code Playgroud) 假设我们有一个视频文件 some_video。
如何从 shell 脚本(使用 mplayer/transcode/gstreamer/vlc/ffmpeg/whatever)获取它的长度?
VIDEO_LENGTH_IN_SECONDS=`ffmpeg .... -i some_video ... | grep -o .....`
Run Code Online (Sandbox Code Playgroud) 例如,我经常看到使用该sameq选项的FFmpeg 命令
ffmpeg -i input.mp4 -sameq output.avi
Run Code Online (Sandbox Code Playgroud)
这是什么意思?这是否意味着“相同的质量”?如果不是,我应该用什么代替?
我怎么能转换some.flv或some.avi或some.wmv与FFmpeg的,以确保该视频将是可玩性,可查找在JW播放器?
我尝试使用 ffmpeg 将我的 flv 文件转换为 mp4 以在 iOS 设备上播放它们,但转换后的视频质量比原始视频差得多。
这是我使用的命令:
ffmpeg -i input.flv -ar 22050 output.mp4
Run Code Online (Sandbox Code Playgroud)
如果有人能为我提供 flv 到 mp4 转换的最佳设置,我将不胜感激。
这是我当前将视频 (1080p) 大小从 2GB 调整到 300MB 的命令,但这需要很多时间:
mkdir newfiles
for %%a in ("*.mp4") do ffmpeg -i "%%a" -c:v libx264 -preset slow -crf 21 -c:a aac -b:a 128k -vf scale=678:-2 "newfiles\%%~na.mp4"
pause
Run Code Online (Sandbox Code Playgroud)
我用我的 NVIDIA GTX1070 尝试了 nvenc:
mkdir newfiles
for %%a in ("*.mp4") do ffmpeg -i "%%a" -c:v h264_nvenc -preset slow -c:a aac -b:a 128k -vf scale=678:-2 "newfiles\%%~na.mp4"
pause
Run Code Online (Sandbox Code Playgroud)
输出大小始终为 3?还是5?原始大小 - nvenc 不使用-crf.
那么我如何使用 nvenc 和 ffmpeg 来转换/调整高质量和小尺寸的视频?我应该使用 GPU 进行编码吗?
我可以将这种格式之一转换为兼容的16000.0 采样率 FLAC文件吗?
kAudioFormatLinearPCM = 'lpcm',
kAudioFormatAppleIMA4 = 'ima4',
kAudioFormatMPEG4AAC = 'aac ',
kAudioFormatMACE3 = 'MAC3',
kAudioFormatMACE6 = 'MAC6',
kAudioFormatULaw = 'ulaw',
kAudioFormatALaw = 'alaw',
kAudioFormatMPEGLayer1 = '.mp1',
kAudioFormatMPEGLayer2 = '.mp2',
kAudioFormatMPEGLayer3 = '.mp3',
kAudioFormatAppleLossless = 'alac'
Run Code Online (Sandbox Code Playgroud)
我尝试使用 ffmpeg
ffmpeg -i audio.xxx -acodec flac audio.flac
Run Code Online (Sandbox Code Playgroud)
但结果是
FFmpeg version CVS, Copyright (c) 2000-2004 Fabrice Bellard
Mac OSX universal build for ffmpegX
configuration: --enable-memalign-hack --enable-mp3lame --enable-gpl --disable-vhook --disable-ffplay --disable-ffserver --enable-a52 --enable-xvid --enable-faac --enable-faad --enable-amr_nb --enable-amr_wb --enable-pthreads --enable-x264
libavutil version: 49.0.0 …Run Code Online (Sandbox Code Playgroud) 我在 2 个不同的服务器上安装了 FFMPEG。在其中一台服务器上,我每次尝试转换 m4v 文件时都会遇到问题,而 ffmpeg 只是无限期地处理文件。当我使用相同的源文件并尝试在另一台服务器上运行它时,它似乎工作得很好。两台服务器都运行相同版本的 GNU/Linux。有人建议我检查服务器上是否安装了相同版本的 ffmpeg,所以我对你们所有人的问题是,“我如何检查我的 ffmpeg 版本?”
谢谢!
这是 ffmpeg 描述它的方式:
‘-ss position (input/output)’
When used as an input option (before -i), seeks in this input file to position. When used as an output option (before an output filename), decodes but discards input until the timestamps reach position. This is slower, but more accurate.
position may be either in seconds or in hh:mm:ss[.xxx] form.
‘-itsoffset offset (input)’
Set the input time offset in seconds. [-]hh:mm:ss[.xxx] syntax is also supported. The offset is added to the timestamps of the …Run Code Online (Sandbox Code Playgroud) 我想使用 ffmpeg 将所有与视频的核心方面(帧速率、分辨率)无关的元数据从一个视频复制到另一个视频。有没有一种简单的方法可以用一个命令来做到这一点?