我有一台运行 Windows 7 Media Center 的家庭影院 PC (HTPC)。我正在使用 SiliconDust CableCard 适配器来像 DVR 一样录制节目。效果很好!
我想在运行 Windows 8.1 的新 8" Dell Venue 平板电脑上查看一些录制的节目(WTV 格式)。我可以访问这些文件,但是当我尝试播放它们时,它会打开 Windows Media Player,然后我得到音频但没有视频播放。这些不是受 DRM 保护的文件。
我认为这意味着 Windows 8.1 理解 WTV 容器格式,并且安装了所需的任何音频编解码器,但我没有安装正确的视频编解码器。使用 MediaInfo,它说 WTV 视频是 MPEG 2 格式。(其他视频格式,如 MPEG 4 播放正常。)
我安装了 ffdshow 以获得 MPEG 2 编解码器,它允许我播放测试 MPEG 2 文件,但对 WTV 文件没有帮助。
关于我需要安装什么的任何想法?谢谢!
在 Linux 服务器(FFmpeg)和 Windows 客户端(VLC 播放器)之间的视频流应用程序上,有大约 10 秒的明显延迟。
FFmpeg 命令:
ffmpeg -re -f v4l2 -i /dev/video0 http://192.168.1.101:8090/feed1.ffm
Run Code Online (Sandbox Code Playgroud)
VLC 播放器:
http://192.168.1.101:8090/test.swf
Run Code Online (Sandbox Code Playgroud)
尽管服务器和客户端同时启动,但 VLC 播放器会延迟大约 10 秒来播放流,从服务器捕获的第一帧开始播放。因此,经常会有 10 秒的延迟。
我试图找出导致这种延迟的原因:
我的第一个想法是编解码器会延迟编码。在这种情况下,我应该在我的 ffserver 配置文件中包含什么编解码器?我尝试了许多视频编解码器(rawvideo、flv、mjpeg),但结果相同。
其次,是否可以在我的 ffmpeg 命令中包含一个参数来控制延迟?
另一方面,这种延迟会不会因为 VLC 播放器而发生?
我理解这个问题有点笼统。但是,如果您遇到类似问题,任何帮助将不胜感激。
FFserver 配置文件:
Port 8090
BindAddress 0.0.0.0
MaxClients 10
MaxBandwidth 40000
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 500M
ACL allow localhost
ACL allow 127.0.0.1
ACL allow 192.168.0.0 192.168.255.255
</Feed>
<Stream test.swf>
Feed feed1.ffm
Format swf
VideoCodec flv
VideoSize 640x480
VideoFrameRate …Run Code Online (Sandbox Code Playgroud) vlc-media-player ffmpeg latency video-streaming video-codecs
我有一个演示文稿的高清视频,所以它主要由静止图像组成。这是一个 50 分钟、200MB 的 MP4 文件,从 YouTube 下载。
有没有办法利用内容的静态特性来进一步压缩它?
我必须提取编解码器,例如'video/mp4; codecs="avc1.42E01E, mp4a.40.2"'MediaSource API 的编解码器。如何使用 FFprobe/FFmpeg 工具严格执行此操作?请不要推荐其他工具。
我正在使用 ffmpeg 在 CentOS Web 服务器上处理用户上传的视频。我需要将每个视频转换为标准大小和格式,然后从每个视频中提取 30 秒的示例剪辑。我想在提取命令中使用“-vcodec copy”标志以避免第二次编码。
此命令适用于我的初始转换:
ffmpeg -i uploaded.mov -f mp4 -vcodec libx264 -vpre medium -acodec libfaac -r 15 -b 360k -ab 48k -ar 22050 -s 480x320 formatted.mp4
Run Code Online (Sandbox Code Playgroud)
这有时适用于提取:
ffmpeg -i formatted.mp4 -vcodec copy -acodec copy -ss 0 -t 30 formatted_sample.mp4
Run Code Online (Sandbox Code Playgroud)
但是,当我对某些视频运行提取命令时,提取的示例剪辑以几秒钟的空白视频开始。音频立即开始,但视频在 3-6 秒内没有开始。
为了演示这个问题,我上传了两个视频片段并在它们上运行上述命令。我在 Final Cut Express 中创建了第一个剪辑,并在上传到 Web 服务器之前使用 Handbrake 对其进行了编码:
1a)上传的剪辑
1b)用第一个命令转换
相比之下,第二个剪辑来自Apple的网站并没有显示问题:
2a)上传的剪辑
2b)用第一个命令转换
2c)用第二个命令提取,没问题
谁能看出这两个源剪辑有什么不同?如果是这样,我可以在我的转换命令中做些什么,以便在提取命令运行时,设置剪辑以避免丢失视频?
顺便说一句,我最初从 yum 安装 ffmpeg 0.6.1 时遇到了问题,但我升级到最新的 git …
当我还在使用 Windows XP 时,我使用ffdshow来满足我所有的视频和音频编解码器需求(具有完全可定制的字幕)。除了 Windows Media Player,我不需要任何其他视频播放器。
是否有适用于 Mac 的 ffdshow 等效项?目标是相同的:我不应该安装任何其他视频播放器,甚至不需要安装 VLC 或充满试用版膨胀软件的 DivX。我在雪豹上。
是否可以在不转码的情况下对视频的每一帧进行部分编辑(例如添加徽标)?并以相同的格式保存视频?
我的意思是,每帧的像素位置是可计算的;那么是否有可能修改文件字节以导致框架上发生所需的更改(例如添加徽标)?
我知道在像 XviD 这样的格式中这是不可能的(至少很容易),但对于某种格式(例如 MPG 或原始 AVI),这是完全不可能的还是可能的?
我想使用 FFmpeg 添加水印,但我希望视频具有相同的质量。我怎么做?
我尝试使用-vcodec copy -acodec copy但没有水印:
ffmpeg -y -i treino.mp4 -vf "movie=logo.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" -vcodec copy -acodec copy video2.mp4
Run Code Online (Sandbox Code Playgroud) video-codecs ×9
ffmpeg ×5
video ×5
avi ×1
codec ×1
compression ×1
decryption ×1
encryption ×1
latency ×1
linux ×1
media ×1
mime-types ×1
windows-8.1 ×1