ต้องการรูปแบบวิดีโอที่จะเล่นบน Windows XP / 7 นอกกรอบ


2

ฉันกำลังกระจายไฟล์ exe ที่มีวิดีโอที่ต้องสามารถเล่นได้บน Windows XP & Windows 7 โดยไม่ต้องติดตั้งซอฟต์แวร์หรือตัวแปลงสัญญาณอื่นใด ๆ ซึ่งรวมถึง Windows Media Player ซึ่งลูกค้าของฉันจำนวนมากไม่ได้ติดตั้ง

รูปแบบ - ทนกับฉันฉันส่วนใหญ่พัฒนาแอพสำหรับแพลตฟอร์มอื่น ๆ ปกติฉันไม่ได้จัดการกับไฟล์ a / v หรือ Windows ดังนั้นคำศัพท์ของฉันอาจไม่ทำงานฉันได้ลองและไม่ประสบความสำเร็จด้วย:

  • .mp4
  • .ogv
  • .wmv (แดกดันใช่มั้ย)

ฉันสามารถเล่นวิดีโอในรูปแบบ. mp4 แต่มีสองประเด็น:

  • เสียงไม่เล่น
  • ไฟล์มีขนาดใหญ่มาก มันคือ 80 MB และฉันควรจะมีไม่เกิน 30 MB ฉันโอเคกับการใส่มันลงในซิปเพื่อลดขนาดลง แต่มันก็ลดลงเหลือแค่ 50 MB

เมื่อฉันเปิดไฟล์บน Mac มันจะเล่นเสียงและทั้งหมด

นี่คือสิ่งที่ผู้ตรวจสอบภาพยนตร์ QuickTime X พูดเกี่ยวกับรูปแบบไฟล์:

MPEG-1 Video, 1,280 x 720
MPEG Layer 3, 48000 Hz, Stereo (L R)

ฉันต้องการคำสั่ง FFMPEG ที่ฉันสามารถป้อนวิดีโอของฉันและจบลงด้วยไฟล์เอาต์พุตที่จะเล่นบน Windows 7 ทั้งภาพและเสียงโดยไม่ต้องพึ่งพาตัวแปลงสัญญาณหรือแอปพลิเคชันอื่น ๆ ฉันต้องการถ้ามันเล่นบนการติดตั้งใหม่ของ Windows XP แม้ว่าฉันจะสามารถอยู่กับมันถ้ามันไม่ได้และนึกคิดฉันจะให้มันอยู่ในข้อ จำกัด ขนาดของฉัน

แก้ไขโดยมีรายละเอียดเกี่ยวกับผลลัพธ์ของ ffmpeg เมื่อฉันพยายามติดตามคำตอบของ Darth Android:

ffmpeg version 2.0.1 Copyright (c) 2000-2013 the FFmpeg developers
built on Aug 15 2013 10:56:46 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
configuration: --prefix=/Volumes/Ramdisk/sw --enable-gpl --enable-pthreads
--enable-version3 --enable-libspeex --enable-libvpx --disable-decoder=libvpx
--enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264
--enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb
--enable-filters --enable-libgsm --arch=x86_64 --enable-runtime-cpudetect

libavutil      52. 38.100 / 52. 38.100
libavcodec     55. 18.102 / 55. 18.102
libavformat    55. 12.100 / 55. 12.100
libavdevice    55.  3.100 / 55.  3.100
libavfilter     3. 79.101 /  3. 79.101
libswscale      2.  3.100 /  2.  3.100
libswresample   0. 17.102 /  0. 17.102
libpostproc    52.  3.100 / 52.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'my-video.mp4':
Metadata:
major_brand     : mp42
minor_version   : 0
compatible_brands: mp42isomavc1
creation_time   : 2013-06-10 18:21:11
encoder         : HandBrake 0.9.9 2013051800
Duration: 00:01:33.95, start: 0.000000, bitrate: 954 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 813 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 180k tbc
Metadata:
  creation_time   : 2013-06-10 18:21:11
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 136 kb/s
Metadata:
  creation_time   : 2013-06-10 18:21:11
[vob @ 0x7f8278821000] VBV buffer size not set, muxing may fail
Output #0, vob, to 'my-video.mpg':
Metadata:
major_brand     : mp42
minor_version   : 0
compatible_brands: mp42isomavc1
encoder         : Lavf55.12.100
Stream #0:0(und): Video: mpeg2video, yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 90k tbn, 29.97 tbc
Metadata:
  creation_time   : 2013-06-10 18:21:11
Stream #0:1(eng): Audio: mp2, 48000 Hz, stereo, s16, 128 kb/s
Metadata:
  creation_time   : 2013-06-10 18:21:11
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> mpeg2video)
Stream #0:1 -> #0:1 (aac -> mp2)
Press [q] to stop, [?] for help
frame=  182 fps=0.0 q=24.8 size=     528kB time=00:00:06.25 bitrate= 691.6kbits
frame=  380 fps=379 q=31.0 size=    1076kB time=00:00:12.97 bitrate= 679.4kbits
frame=  548 fps=364 q=31.0 size=    1704kB time=00:00:18.49 bitrate= 754.8kbits
frame=  692 fps=345 q=31.0 size=    2390kB time=00:00:23.26 bitrate= 841.4kbits
frame=  815 fps=325 q=31.0 size=    3170kB time=00:00:27.30 bitrate= 951.2kbits
frame=  950 fps=316 q=24.8 size=    4146kB time=00:00:31.78 bitrate=1068.4kbits
frame= 1079 fps=307 q=31.0 size=    5154kB time=00:00:36.13 bitrate=1168.5kbits
frame= 1242 fps=309 q=31.0 size=    5868kB time=00:00:41.65 bitrate=1154.0kbits
frame= 1413 fps=313 q=31.0 size=    6586kB time=00:00:47.31 bitrate=1140.2kbits
frame= 1587 fps=316 q=31.0 size=    7346kB time=00:00:53.14 bitrate=1132.2kbits
frame= 1753 fps=318 q=31.0 size=    8026kB time=00:00:58.66 bitrate=1120.7kbits
frame= 1925 fps=320 q=31.0 size=    8798kB time=00:01:04.35 bitrate=1119.9kbits
frame= 2091 fps=321 q=31.0 size=    9646kB time=00:01:10.02 bitrate=1128.5kbits
frame= 2226 fps=317 q=31.0 size=   10484kB time=00:01:14.48 bitrate=1153.0kbits
frame= 2386 fps=317 q=31.0 size=   11232kB time=00:01:19.86 bitrate=1152.1kbits
frame= 2554 fps=318 q=31.0 size=   11852kB time=00:01:25.40 bitrate=1136.8kbits
frame= 2759 fps=324 q=31.0 size=   12396kB time=00:01:32.14 bitrate=1102.0kbits
frame= 2813 fps=325 q=31.0 Lsize=   12546kB time=00:01:33.94 bitrate=1094.0kbits/s    
video:10904kB audio:1468kB subtitle:0 global headers:0kB muxing overhead 1.402856%

2
คุณต้องการMPEG-2 Videoด้วยMPEG Layer 2เสียงเนื่องจากทั้งสองอย่างรวมอยู่ในตัวกรอง DirectShow เริ่มต้นที่มาพร้อมกับ Windows (และMPEG-2วิดีโอจะให้ผลลัพธ์ที่ดีกว่าMPEG-1)
Darth Android

@DarthAndroid - ฟังดูดี คุณช่วยให้ฉันffmpegคำสั่งตัวอย่างที่จะไปจากประเภทของไฟล์ที่ฉันต้องประเภทนั้น (อาจเป็นคำตอบเพื่อให้ฉันสามารถทำเครื่องหมายว่าถูกต้อง?)
ArtOfWarfare

ฉันจะไม่ทิ้งคำตอบไว้ประมาณหนึ่งวันในกรณีที่ @DarthAndroid ต้องการทำเช่นนั้น แต่คุณจะต้องการใช้-c:v mpeg2videoและ-c:a mp2ใช้ตัวแปลงสัญญาณเหล่านี้ คุณสามารถตั้งค่าคุณภาพของ mpeg2video ด้วย-q:v 4(ช่วงคือ 1-31 โดยที่จำนวนต่ำกว่า = คุณภาพที่ดีขึ้นและ 3-6 เป็นช่วงที่มีประโยชน์) ฉันไม่แน่ใจว่าจะตั้งเป็นเสียงอย่างไร (มันจะ -q : a, แต่ฉันไม่แน่ใจว่าช่วงนั้นคืออะไร)
evilsoup

AVI ไม่ใช่รูปแบบมาตรฐานนอกกรอบสำหรับ XP / 7 ใช่หรือไม่
JamesTheDev

@evilsoup ฉันเชื่อว่าmp2จะไม่สนใจ-q:aและจะใช้ค่าเริ่มต้นของ-b:a 128kและmp2เป็นเรื่องเกี่ยวกับสิ่งที่บิตเรตจะยอมรับ
llogan

คำตอบ:


1

ลอง:

ffmpeg.exe -i "C:/Path/to/your/video.mkv" -vcodec mpeg2video -acodec mp2 -f vob -y "C:/Path/to/output/video.mpg" 

video.mkvไฟล์ต้นฉบับของคุณอยู่ที่ไหนและและvideo.mpgเป็นผลลัพธ์ของคุณ

-vcodec mpeg2videoตั้งค่ารูปแบบวิดีโอเอาต์พุตเป็น MPEG2
-acodec mp2ตั้งค่ารูปแบบเสียงสัญญาณออกเป็น MPEG2 -f vobกำหนดรูปแบบไฟล์คอนเทนเนอร์ / รูปแบบไฟล์เอาต์พุตเป็น Vob (* .mpg)
-yเขียนทับไฟล์เป้าหมาย


@ LordNeckbeard ขอบคุณ ฉันไม่คุ้นเคยffmpegดังนั้นโปรดแก้ไข / แก้ไขคำตอบหากมีรายละเอียดที่ฉันพลาดไป นอกจากนี้ฉันคิดว่ามันน่าขบขันที่คุณสามารถติดตามความคิดเห็นที่คุณเขียนเมื่อปีที่แล้ว
Darth Android

ขอบคุณ คุณหมายถึงความคิดเห็นใด
llogan

ฉันพยายามทำสิ่งนี้ บน Mac ของฉันวิดีโอใหม่เล่นได้ดีและมีขนาดเล็กกว่ามาก (เพียง 12 MB) แต่มันไม่เล่นวิดีโอหรือเสียงใน Windows 7 Quicktime (สำหรับ Mac) กล่าวว่าวิดีโอเป็นวิดีโอ MPEG-2 พร้อมเสียง MPEG Layer 3 . ฉันจะแก้ไขคำถามของฉันเพื่อให้มีรายละเอียดเพิ่มเติมเกี่ยวกับผลลัพธ์ของ ffmpeg
ArtOfWarfare

@DarthAndroid - ฉันได้ลองแล้ว แต่ตอนนี้วิดีโอไม่เล่นใน Windows 7 ฉันได้เพิ่มบันทึกลงในคำถามของฉันที่แสดงผลลัพธ์จาก ffmpeg
ArtOfWarfare

ฉันลองใส่ mpg ที่สร้างจากคำสั่งนี้ไปยัง ffmpeg อีกครั้งเพื่อแปลงเป็นอย่างอื่น - จากโน้ตมันบอกว่าเสียงนั้นเป็น mp2 แม้ว่า Quicktime จะบอกว่ามันเป็นเลเยอร์ 3 ดังนั้นบางที Quicktime ก็แค่พิมพ์ผิดอยู่ หรืออาจ ffmpeg ทำ
ArtOfWarfare

1

ในที่สุดฉันก็พบรูปแบบที่เหมาะกับฉันในการติดตั้ง Windows 7 ใหม่โดยไม่ต้องใช้ Windows Media Player หรือตัวแปลงสัญญาณอื่น ๆ :

MPEG-1 Video, 1,280 x 720
MPEG Layer 3, 48000 Hz, Mono

(หมายเหตุการเปลี่ยนแปลงเพียงอย่างเดียวคือจากสเตอริโอเป็นโมโนเมื่อเทียบกับสิ่งที่ฉันใช้เมื่อฉันโพสต์คำถาม)

เพื่อให้ได้ฉันพิมพ์:

ffmpeg -i my-video.mp4 -vcodec mpeg1video -acodec mp2 -ac 1 -f vob my-video-mono.mpg

ฉันอยากจะขอบคุณ Darth Android ที่คำตอบช่วยฉันอย่างมากในการเรียนรู้เพิ่มเติมเกี่ยวกับข้อโต้แย้งที่ฉันต้องการเพื่อจัดหาให้กับ ffmpeg

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.