尝试循环图像以获得分段的HLS输出.
ffmpeg -loop 1 -i image.png -vcodec libx264 -acodec aac -map 0 -f segment -segment_time 5 -segment_list /seg.m3u8 /200_%06d.ts
Metadata:
encoder : Lavf54.26.101
Stream #0:0: Video: h264, yuv444p, 1344x840, q=-1--1, 90k tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (png -> libx264)
Press [q] to stop, [?] for help
Failed to open bitstream filter h264_mp4toannexb for stream 0 with codec libx264: Invalid argument
[mpegts @ 0x7fe91a615600] H.264 bitstream malformed, no startcode found, use the h264_mp4toannexb bitstream filter (-bsf h264_mp4toannexb) …Run Code Online (Sandbox Code Playgroud) 我在Centos6服务器上遇到了Ffmpeg和Libvpx的问题.
命令:
ffmpeg -y -i /var/www/f1ccd3a27d36270492ce660da358b436.mp4 -t 99 acodec copy -vcodec libvpx -f webm /var/www/f1ccd3a27d36270492ce660da358b436.webm 2<&1
Run Code Online (Sandbox Code Playgroud)
输出:
FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
built on Jan 29 2012 17:52:15 with gcc 4.4.5 20110214 (Red Hat 4.4.5-6)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --enable-avfilter-lavf --enable-libdc1394 --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau …Run Code Online (Sandbox Code Playgroud) 我正在尝试剪切和淡出mp3文件的最后4秒:
avconv -i SPEX_pilot_02.mp3 -t 0:0:25 -filter:a fade=t=out:st=21:d=4 preteach-words.mp3
Run Code Online (Sandbox Code Playgroud)
没有错误,但没有应用淡出效果.):
我的版本是avconv 0.8.10-6:0.8.10-0ubuntu0.13.10.1
avconv -filters | grep fade 给我
fade Fade in/out input video
Run Code Online (Sandbox Code Playgroud)
在官方LibAV文档中,淡入淡出过滤器仅列在视频过滤器部分中,并使用帧作为参数.
我想做的是从音频或视频文件中获取元数据并将其保存到数据库记录中,到目前为止,唯一的方法似乎是使用子进程将 AVCONV 保存到文件中。打开调用然后读取该文件,是有没有库可以做到这一点以节省一些步骤?我找不到使用 Pydub 或 PySox 来完成此操作的方法。这是我使用的简单粗暴的初学者代码,它确实有效,并将比特率、持续时间等信息放入变量audio_info中,并将元数据放入元数据中。OGG 输出的工作方式与我测试的其他格式不同(这是大量的视频和音频!)。
try:
p = subprocess.Popen(["avconv" , "-i" , music_file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
retcode = p.wait()
except IOError,e:
pass
extension = uploaded_music_file[-3:]
if "ogg" not in [err , extension]:
if "Metadata:" in err:
list = err.split("Metadata:")
holder = list[1].split("Duration:")
metadata = holder[0]
audio_info = holder[1].replace("At least one output file must be specified","")
print metadata
print audio_info
else:
list = err.split("Duration:")
audio_info = list[1].replace("At least one output file must be specified","")
print …Run Code Online (Sandbox Code Playgroud) 我需要将 .wav 格式的音频文件切成 10 秒的块。这些块需要正好是 10 秒,而不是 10.04799988232 秒。
我正在使用的当前代码是
ffmpeg -i test.wav -ss 0 -to 10 -c:a libfdk_aac -b:a 80k aac/test.aac
ffmpeg version 3.2.2 Copyright (c) 2000-2016 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.2.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-opencl --disable-lzma --enable-nonfree --enable-vda
libavutil 55. 34.100 / 55. 34.100
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.100 / …Run Code Online (Sandbox Code Playgroud) 所以我试图给一个装满 gif 的文件夹加水印,但我收到一个错误,说我当时只能使用一个 GIF 流,有没有办法规避这个?
@echo off
setlocal
for %%G in ("%~dp0gifs\*.gif") do (
ffmpeg -i %%G -i Watermark.png -filter_complex "[0:v]scale=trunc(iw/2)*2:trunc(ih/2)*2[v0];[1:v][v0]scale2ref=trunc(iw/5):trunc(ih/16)[logo][0v];[0v][logo]overlay=W-w-3:H-h-4 [v]" -map "[v]" -codec:v libx264 -preset slow -crf 18 %%~nG.gif
)
)
endlocal
pause
Run Code Online (Sandbox Code Playgroud)
错误来自ffmpeg:
[gif @ 0x7ff212801c00] GIF muxer supports only a single video GIF stream.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:0 --
Run Code Online (Sandbox Code Playgroud) 据我所知,两个命令行参数都改变了音频比特率,但我不确定,因为我也看到了它们的组合。基本上我找不到任何解释这两个命令的文档。也可能是 -ab 被替换为 -b:a 但我不确定。
泰
我想在 ffmpeg 中使用 hstack 组合两个视频。问题是这两个视频的高度不同。由于来源是动态的,因此高度可能会有所不同。那么如何将视频高度均衡到它们的最大高度并将它们堆叠起来。
根据NVIDIA开发人员网站的说法,您可以使用GPU来加快ffmpeg过滤器的渲染速度。
使用FFmpeg中的内置>过滤器创建高性能的端到端硬件加速视频处理,1:N编码和1:N转码管线
能够使用FFmpeg中的共享CUDA上下文实现添加自己的自定义高性能CUDA过滤器
我现在遇到的问题是如何使用GPU来加速多个ffmpeg过滤器处理?
例如:
ffmpeg -loop 1 -i dog.jpg -filter_complex "scale=iw*4:-1,zoompan=z='zoom+0.002':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':s=720x960" -pix_fmt yuv420p -vcodec libx264 -preset ultrafast -y -r:v 25 -t 5 -crf 28 dog.mp4
Run Code Online (Sandbox Code Playgroud) 我正在创建一个包含 4 个不同文件的 MKV 容器:
为此,我使用以下ffmpeg脚本:
ffmpeg -i video.mp4 -i audio_es.mp4 -i audio_en.mp4 -i subtitles.ass \
-map 0:v -map 1:a -map 2:a -map 3:s \
-metadata:s:a:0 language=spa \
-metadata:s:a:1 language=eng \
-metadata:s:s:0 language=spa -disposition:s:0 -default \
-default -c:v copy -c:a copy -c:a copy -c:s copy result.mkv
Run Code Online (Sandbox Code Playgroud)
看起来result.mkv很棒,一切都按预期工作,除了一件事:字幕仍然设置为默认轨道,因此 VLC 等播放器会自动显示它们。我已经尝试了很多不同的方法来避免旗帜发生这种情况disposition,但我无法让它发挥作用。
我应该如何修改脚本以使 MKV 的字幕轨道不被标记为default?
提前致谢!