
Recherche avancée
Autres articles (53)
-
La file d’attente de SPIPmotion
28 novembre 2010, parUne file d’attente stockée dans la base de donnée
Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...) -
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page. -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)
Sur d’autres sites (7246)
-
How can I store a live stream when internet connection is interrupted ?
5 juin 2019, par Marcello MoreiraI’m building a solution using drone and 3g/4g connection.
I have an IP camera encoded in H.264 by a hardware encoder connected to a raspberry pi and a 3g/4g moldem. The hardware encoder livestream de video via RTMP to a remote server I have. All these devices are in a moving platform, and sometimes the moldem loses connection with internet for a few seconds/minutes. When this happens, I want to store the live footage in the raspberry with ffmpeg, and when the connection restores I can send it back to the server. I have access to the encoded livestream from the raspberry pi over LAN even when internet is down.I do not know how and where should I start.
I see two approaches for this.First approach
One is to do all the streaming via ffmpeg, and disable the automatic hardware stream, when ffmpeg detects that it can’t send stream to the remote server, it starts to store the video (like a buffer) until the connection is restore. The issue with this, is that I don’t know if ffmpeg can detect if internet connection is down, and how can I buffer the video. Also by doing this, when connection is restored, live video would have a huge delay, and I can’t have lot’s of delay in my solution.
Second approach
The second is simultaneously store with ffmpeg the live video, when internet goes down, a process records the timestamp, and keeps watching until internet connection is restored. Then it sends to my server only the missing piece. At my server I would need to figure out a way to join those streams back up.. (I would gladly accept tips on that too). Issue with this is that there’s limited space in my raspberry, so I can only store a limited amount. Also, my device may be turned off when it lands so I need to send the video recording ASAP after connection is restored.
So, which approach seems to be the better one ?
-
Store a live stream when internet connection is interrupted ?
6 juin 2019, par Marcello MoreiraI’m building a solution using drone and 3g/4g connection.
I have an IP camera encoded in H.264 by a hardware encoder connected to a raspberry pi and a 3g/4g modem. The hardware encoder livestream de video via RTMP to a remote server I have. All these devices are in a moving platform, and sometimes the modem loses connection with internet for a few seconds/minutes. When this happens, I want to store the live footage in the raspberry with ffmpeg, and when the connection restores I can send it back to the server. I have access to the encoded livestream from the raspberry pi over LAN even when internet is down.I do not know how and where should I start.
I see two approaches for this.First approach
One is to do all the streaming via ffmpeg, and disable the automatic hardware stream, when ffmpeg detects that it can’t send stream to the remote server, it starts to store the video (like a buffer) until the connection is restore. The issue with this, is that I don’t know if ffmpeg can detect if internet connection is down, and how can I buffer the video. Also by doing this, when connection is restored, live video would have a huge delay, and I can’t have lot’s of delay in my solution.
Second approach
The second is simultaneously store with ffmpeg the live video, when internet goes down, a process records the timestamp, and keeps watching until internet connection is restored. Then it sends to my server only the missing piece. At my server I would need to figure out a way to join those streams back up.. (I would gladly accept tips on that too). Issue with this is that there’s limited space in my raspberry, so I can only store a limited amount. Also, my device may be turned off when it lands so I need to send the video recording ASAP after connection is restored.
So, which approach seems to be the better one ?
-
Using ffmpeg on Ubuntu, how can the audio and video from an audio-video USB capture device be recorded ?
11 avril 2022, par BlandCorporationI have a USB audio-video capture device, something used to digitize video cassettes. I want to record both the video and audio from the device to a video file that has dimensions 720x576 and video codec H.264 and good audio quality.


I am able to record video from the device using ffmpeg and I am able to see video from the device using MPlayer. I am able also to see that audio is being delivered from the device to the computer by looking at Input tab of the Sound Preferences window or by recording the audio using Audacity, however the audio gets delivered from the device apparently only when the video is being accessed using ffmpeg or MPlayer.


I have tried to get ffmpeg to record the audio and I have tried to get MPlayer to play the audio and my efforts have not been successful.


The device is "Pinnacle Dazzle DVC 90/100/101" (as returned by
v4l2-ctl --list-devices
). The sound cards listing shows it as "DVC100" :

$ cat /proc/asound/cards 
 0 [PCH ]: HDA-Intel - HDA Intel PCH
 HDA Intel PCH at 0x601d118000 irq 171
 1 [DVC100 ]: USB-Audio - DVC100
 Pinnacle Systems GmbH DVC100 at usb-0000:00:14.0-4, high speed
29 [ThinkPadEC ]: ThinkPad EC - ThinkPad Console Audio Control
 ThinkPad Console Audio Control at EC reg 0x30, fw N2LHT33W



The PulseAudio listing for the device is as follows :


$ pactl list cards short
0 alsa_card.pci-0000_00_1f.3 module-alsa-card.c
14 alsa_card.usb-Pinnacle_Systems_GmbH_DVC100-01 module-alsa-card.c



The following ffmpeg command successfully records video, but records severely distorted, broken and out-of-sync audio :


ffmpeg -y -f rawvideo -f alsa -thread_queue_size 2048 -ar 48000 -i hw:0 \
 -c:a aac -video_size 720x576 -pixel_format uyvy422 -i /dev/video2 out.mp4



The following MPlayer command successfully displays the video but does not play the audio :


mplayer -tv driver=v4l2:norm=PAL:device=/dev/video2:width=720:height=576 \
 -ao alsa:device=hw=1.0 -vf pp=lb tv://



Now, when the above MPlayer command is running (not the ffmpeg command) and displaying the input video in a window, Audacity can be opened and set recording audio, and it records the audio from the device clearly and in good quality. While Audacity is doing this, the input device is listed in
pavucontrol
as "Dazzle DVC Audio Device Analogue Stereo". Equivalently, arecord can be used also to record the audio using the following command (with output shown) :

$ arecord -vv -D plughw:DVC100 -fdat out.wav
Recording WAVE 'out.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
Plug PCM: Hardware PCM card 1 'DVC100' device 0 subdevice 0
Its setup is:
 stream : CAPTURE
 access : RW_INTERLEAVED
 format : S16_LE
 subformat : STD
 channels : 2
 rate : 48000
 exact rate : 48000 (48000/1)
 msbits : 16
 buffer_size : 24000
 period_size : 6000
 period_time : 125000
 tstamp_mode : NONE
 tstamp_type : MONOTONIC
 period_step : 1
 avail_min : 6000
 period_event : 0
 start_threshold : 1
 stop_threshold : 24000
 silence_threshold: 0
 silence_size : 0
 boundary : 6755399441055744000
 appl_ptr : 0
 hw_ptr : 0



Looking at the output of
arecord -L
, I tried a variety of audio device input names with ffmpeg and none of them seemed to work. So, for example, I tried commands like the following :

ffmpeg -y -f rawvideo -f alsa -i plughw:DVC100 \
 -video_size 720x576 -pixel_format uyvy422 -i /dev/video2 out.mp4



And tried the following audio device names :


plughw:DVC100
plughw:CARD=DVC100,DEV=0
hw:CARD=DVC100,DEV=0
plughw:CARD=DVC100
sysdefault:CARD=DVC100
iec958:CARD=DVC100,DEV=0
dsnoop:CARD=DVC100,DEV=0



So, how might I get ffmpeg to record the audio successfully to the video file ? Is there some alternative approach to this problem ?



EDIT : The relevant output from the command
pactl list sources
is as follows :

Source #20
 State: SUSPENDED
 Name: alsa_input.usb-Pinnacle_Systems_GmbH_DVC100-01.analog-stereo
 Description: Dazzle DVC100 Audio Device Analogue Stereo
 Driver: module-alsa-card.c
 Sample Specification: s16le 2ch 48000Hz
 Channel Map: front-left,front-right
 Owner Module: 45
 Mute: no
 Volume: front-left: 99957 / 153% / 11.00 dB, front-right: 99957 / 153% / 11.00 dB
 balance 0.00
 Base Volume: 35466 / 54% / -16.00 dB
 Monitor of Sink: n/a
 Latency: 0 usec, configured 0 usec
 Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
 Properties:
 alsa.resolution_bits = "16"
 device.api = "alsa"
 device.class = "sound"
 alsa.class = "generic"
 alsa.subclass = "generic-mix"
 alsa.name = "USB Audio"
 alsa.id = "USB Audio"
 alsa.subdevice = "0"
 alsa.subdevice_name = "subdevice #0"
 alsa.device = "0"
 alsa.card = "1"
 alsa.card_name = "DVC100"
 alsa.long_card_name = "Pinnacle Systems GmbH DVC100 at usb-0000:00:14.0-4, high speed"
 alsa.driver_name = "snd_usb_audio"
 device.bus_path = "pci-0000:00:14.0-usb-0:4:1.1"
 sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.1/sound/card1"
 udev.id = "usb-Pinnacle_Systems_GmbH_DVC100-01"
 device.bus = "usb"
 device.vendor.id = "2304"
 device.vendor.name = "Pinnacle Systems, Inc."
 device.product.id = "021a"
 device.product.name = "Dazzle DVC100 Audio Device"
 device.serial = "Pinnacle_Systems_GmbH_DVC100"
 device.string = "front:1"
 device.buffering.buffer_size = "352800"
 device.buffering.fragment_size = "176400"
 device.access_mode = "mmap+timer"
 device.profile.name = "analog-stereo"
 device.profile.description = "Analogue Stereo"
 device.description = "Dazzle DVC100 Audio Device Analogue Stereo"
 alsa.mixer_name = "USB Mixer"
 alsa.components = "USB2304:021a"
 module-udev-detect.discovered = "1"
 device.icon_name = "audio-card-usb"
 Ports:
 analog-input-linein: Line In (priority: 8100)
 Active Port: analog-input-linein
 Formats:
 pcm



I tested the name from this with ffmpeg (version 4.3.1, compiled with
-enable-libpulse
) in the following way :

ffmpeg -y -f video4linux2 -f pulse \
 -i alsa_input.usb-Pinnacle_Systems_GmbH_DVC100-01.analog-stereo \
 -video_size 720x576 -pixel_format uyvy422 -i /dev/video2 out.mp4



Unfortunately this hasn't worked.